Mysql数据库的使用总结之Innodb简介(二)

    这一篇博客还不能超过8万字符,所以只能接着上一篇再写一篇了。

InnoDB启动选项

这一节叙述 InnoDB 相关的服务器选项,所有这些选项可以以 --opt_name=value 的形式在命令行或在选项文件里被指定。
 
         innodb_additional_mem_pool_size
         InnoDB 用来存储数据目录信息&其它内部数据结构的内存池的大小。你应用程序里的表越多,你需要在这里分配越多的内存。如果 InnoDB 用光了这个池内的内存, InnoDB 开始从操作系统分配内存,并且往 MySQL 错误日志写警告信息。默认值是 1MB
 
         innodb_autoextend_increment
         当自动扩展表空间被填满之时,为扩展而增加的尺寸( MB 为单位)。默认值是 8 。这个选项可以在运行时作为全局系统变量而改变。
 
         innodb_buffer_pool_awe_mem_mb
         如果缓冲池被放在 32 Windows AWE 内存里,这个参数就是缓冲池的大小( MB 为单位)。 ( 仅在 32 Windows 上相关)如果你的 32 Windows 操作系统使用所谓的“地址窗口扩展( AWE) ”支持超过 4GB 内存,你可以用这个参数把 InnoDB 缓冲池分配进 AWE 物理内存。这个参数最大的可能值是 64000 。如果这个参数被指定了, innodb_buffer_pool_size 是在 32 位地址空间的 mysqld 内的窗口, InnoDB 把那个 AWE 内存映射上去。对 innodb_buffer_pool_size 参数,一个比较好的值是 500MB
 
         innodb_buffer_pool_size
         InnoDB 用来缓存它的数据和索引的内存缓冲区的大小。你把这个值设得越高,访问表中数据需要得磁盘 I/O 越少。在一个专用的数据库服务器上,你可以设置这个参数达机器物理内存大小的 80% 。尽管如此,还是不要把它设置得太大,因为对物理内存的竞争可能在操作系统上导致内存调度。
 
         innodb_checksums
         InnoDB 在所有对磁盘的页面读取上使用校验和验证以确保额外容错防止硬件损坏或数据文件。尽管如此,在一些少见的情况下(比如运行标准检查之时)这个额外的安全特征是不必要的。在这些情况下,这个选项(默认是允许的)可以用 --skip-innodb-checksums 来关闭。
 
         innodb_data_file_path
         到单独数据文件和它们尺寸的路径。通过把 innodb_data_home_dir 连接到这里指定的每个路径,到每个数据文件的完整目录路径可被获得。文件大小通过给尺寸值尾加 M G MB 或者 GB 1024MB )为单位被指定。文件尺寸的和至少是 10MB 。在一些操作系统上,文件必须小于 2GB 。如果你没有指定 innodb_data_file_path ,开始的默认行为是创建一个单独的大小 10MB 名为 ibdata1 的自扩展数据文件。在那些支持大文件的操作系统上,你可以设置文件大小超过 4GB
 
         innodb_data_home_dir
         目录路径对所有 InnoDB 数据文件的共同部分。如果你不设置这个值,默认是 MySQL 数据目录。你也可以指定这个值为一个空字符串,在这种情况下,你可以在 innodb_data_file_path 中使用绝对文件路径。
 
         innodb_doublewrite
         默认地, InnoDB 存储所有数据两次,第一次存储到 doublewrite 缓冲,然后存储到确实的数据文件。这个选项可以被用来禁止这个功能。类似于 innodb_checksums ,这个选项默认是允许的;因为标准检查或在对顶级性能的需要超过对数据完整性或可能故障的关注之时,这个选项用 --skip-innodb-doublewrite 来关闭。
 
         innodb_fast_shutdown
         如果你把这个参数设置为 0 InnoDB 在关闭之前做一个完全净化和一个插入缓冲合并。这些操作要花几分钟时间,设置在极端情况下要几个小时。如果你设置这个参数为 1 InnoDB 在关闭之时跳过这些操作。默认值为 1 。如果你设置这个值为 2 ( Netware 无此值 ) InnoDB 将刷新它的日志然后冷关机,仿佛 MySQL 崩溃一样。已提交的事务不会被丢失,但在下一次启动之时会做一个崩溃恢复。
 
         innodb_file_io_threads
         InnoDB 中文件 I/O 线程的数量。正常地,这个参数是用默认的,默认值是 4 ,但是大数值对 Windows 磁盘 I/O 有益。在 Unix 上,增加这个数没有效果, InnoDB 总是使用默认值。
 
         innodb_file_per_table
         这个选项致使 InnoDB 用自己的 .ibd 文件为存储数据和索引创建每一个新表,而不是在共享表空间中创建。
 
         innodb_flush_log_at_trx_commit
         innodb_flush_log_at_trx_commit 设置为 0 ,日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作。当这个值为 1 (默认值)之时,在每个事务提交时,日志缓冲被写到日志文件,对日志文件做到磁盘操作的刷新。当设置为 2 之时,在每个提交,日志缓冲被写到文件,但不对日志文件做到磁盘操作的刷新。尽管如此,在对日志文件的刷新在值为 2 的情况也每秒发生一次。我们必须注意到,因为进程安排问题,每秒一次的刷新不是 100% 保证每秒都发生。你可以通过设置这个值不为 1 来获得较好的性能,但随之你会在一次崩溃中损失二分之一价值的事务。如果你设置这个值为 0 ,那么任何 mysqld 进程的崩溃会删除崩溃前最后一秒的事务,如果你设置这个值为 2 ,那么只有操作系统崩溃或掉电才会删除最后一秒的事务。尽管如此, InnoDB 的崩溃恢复不受影响,而且因为这样崩溃恢复开始作用而不考虑这个值。注意,许多操作系统和一些磁盘硬件会欺骗刷新到磁盘操作。尽管刷新没有进行,你可以告诉 mysqld 刷新已经进行。即使设置这个值为 1 ,事务的持久程度不被保证,且在最坏情况下掉电甚至会破坏 InnoDB 数据库。在 SCSI 磁盘控制器中,或在磁盘自身中,使用有后备电池的磁盘缓存会加速文件刷新并且使得操作更安全。你也可以试着使用 Unix 命令 hdparm 来在硬件缓存中禁止磁盘写缓存,或使用其它一些对硬件提供商专用的命令。这个选项的默认值是 1

你可能感兴趣的:(数据库,mysql,InnoDB,简介,休闲)