依然超过8万字符,继续写一篇。晕~~~~~~
・
innodb_flush_method
这个选项只在
Unix
系统上有效。如果这个选项被设置为
fdatasync
(默认值),
InnoDB
使用
fsync()
来刷新数据和日志文件。如果被设置为
O_DSYNC
,
InnoDB
使用
O_SYNC
来打开并刷新日志文件,但使用
fsync()
来刷新数据文件。如果
O_DIRECT
被指定了(在一些
GNU/Linux
版本商可用),
InnoDB
使用
O_DIRECT
来打开数据文件,并使用
fsync()
来刷新数据和日志文件。注意,
InnoDB
使用
fsync()
来替代
fdatasync()
,并且它默认不使用
O_DSYNC
,因为这个值在许多
Unix
变种上已经发生问题。
•
innodb_force_recovery
警告:这个选项仅在一个紧急情况下被定义,当时你想要从损坏的数据库转储表。可能的值为从1到6。作为一个安全措施,当这个选项值大于零之时,InnoDB阻止用户修改数据。
•
innodb_lock_wait_timeout
InnoDB
事务在被回滚之前可以等待一个锁定的超时秒数。
InnoDB
在它自己的锁定表中自动检测事务死锁并且回滚事务。
InnoDB
用
LOCK TABLES
语句注意到锁定设置。默认值是
50
秒。
为在一个复制建立中最大可能的持久程度和连贯性,你应该在主服务器上的
my.cnf
文件里使用
innodb_flush_log_at_trx_commit=1
和
sync-binlog=1
。
•
innodb_locks_unsafe_for_binlog
这个选项在
InnoDB
搜索和索引扫描中关闭下一键锁定。这个选项的默认值是假(
false
)。
•
innodb_log_arch_dir
如果我们使用日志档案,被完整写入的日志文件所在的目录也被归档。这个参数值如果被使用了,应该被设置得与
innodb_log_group_home_dir
一样。尽管如此,它不是必需的。
•
innodb_log_archive
这个值当前被设为
0
。因为
MySQL
使用它自己的日志文件从备份来恢复,所以当前没有必要来归档
InnoDB
日志文件。这个选项的默认值是
0
。
•
innodb_log_buffer_size
InnoDB
用来往磁盘上的日志文件写操作的缓冲区的大小。明智的值是从
1MB
到
8MB
。默认的是
1MB
。一个大的日志缓冲允许大型事务运行而不需要在事务提交之前往磁盘写日志。因此,如果你有大型事务,使日志缓冲区更大以节约磁盘
I/O
。
•
innodb_log_file_size
在日志组里每个日志文件的大小。在
32
位计算机上日志文件的合并大小必须少于
4GB
。默认是
5MB
。明智的值从
1MB
到
N
分之一缓冲池大小,其中
N
是组里日志文件的数目。值越大,在缓冲池越少需要检查点刷新行为,以节约磁盘
I/O
。但更大的日志文件也意味这在崩溃时恢复得更慢。
•
innodb_log_files_in_group
在日志组里日志文件的数目。
InnoDB
以循环方式写进文件。默认是
2
(推荐)。
•
innodb_log_group_home_dir
到
InnoDB
日志文件的目录路径。它必须有和
innodb_log_arch_dir
一样的值。如果你不指定任何
InnoDB
日志参数,默认的是在
MySQL
数据目录里创建两个
5MB
大小名为
ib_logfile0
和
ib_logfile1
的文件。
•
innodb_max_dirty_pages_pct
这是一个范围从
0
到
100
的整数。默认是
90
。
InnoDB
中的主线程试着从缓冲池写页面,使得脏页(没有被写的页面)的百分比不超过这个值。如果你有
SUPER
权限,这个百分比可以在服务器运行时按下面来改变:
SET GLOBAL innodb_max_dirty_pages_pct = value;
•
innodb_max_purge_lag
这个选项控制在净化操作被滞后之时,如何延迟
INSERT, UPDATE
和
DELETE
操作。这个参数的默认值是零,意为无延迟。这个选项可以在运行时作为全局系统变量而被改变。
•
innodb_mirrored_log_groups
我们为数据库保持的日志组内同样拷贝的数量。当前这个值应该被设为
1
。
•
innodb_open_files
在
InnoDB
中,这个选项仅与你使用多表空间时有关。它指定
InnoDB
一次可以保持打开的
.ibd
文件的最大数目。最小值是
10
。默认值
300
。
对
.ibd
文件的文件描述符是仅对
InnoDB
的。它们独立于那些由
--open-files-limit
服务器选项指定的描述符,且不影响表缓存的操作。
•
innodb_status_file
这个选项让
InnoDB
为周期的
SHOW INNODB STATUS
输出创建一个文件
<datadir>/innodb_status.<pid>
。
•
innodb_support_xa
当被设置为
ON
或者
1
(默认地),这个变量允许
InnoDB
支持在
XA
事务中的双向提交。允许
innodb_support_xa
导致一个额外的对事务准备的磁盘刷新。如果你对使用
XA
并不关心,你可以通过设置这个选项为
OFF
或
0
来禁止这个变量,以减少磁盘刷新的次数并获得更好的
InnoDB
性能。
•
innodb_table_locks
InnoDB
重视
LOCK TABLES
,直到所有其它线程已经释放他们所有对表的锁定,
MySQL
才从
LOCK TABLE .. WRITE
返回。默认值是
1
,这意为
LOCK TABLES
让
InnoDB
内部锁定一个表。在使用
AUTOCOMMIT=1
的应用里,
InnoDB
的内部表锁定会导致死锁。你可以在
my.cnf
文件(
Windows
上是
my.ini
文件)里设置
innodb_table_locks=0
来消除这个问题。
•
innodb_thread_concurrency
InnoDB
试着在
InnoDB
内保持操作系统线程的数量少于或等于这个参数给出的限制。如果有性能问题,并且
SHOW INNODB STATUS
显示许多线程在等待信号,可以让线程“
thrashing
”
,并且设置这个参数更小或更大。如果你的计算机有多个处理器和磁盘,你可以试着这个值更大以更好地利用计算机的资源。一个推荐的值是系统上处理器和磁盘的个数之和。值为
500
或比
500
大会禁止调用并发检查。默认值是
20
,并且如果设置大于或等于
20
,并发检查将被禁止。
•
innodb_status_file
这个选项让
InnoDB
为周期的
SHOW INNODB STATUS
输出创建一个文件
<datadir>/innodb_status.<pid>
。