什么是 ALL_O_DIRECT ?什么时候有用?
“ALL_O_DIRECT: 用 O_DIRECT 同时打开数据和日志文件, 用 fsync() 把数据文件冲掉而不是日志文件. 当InnoDB日志文件很大时 (大于8GB),建议使用,否则会导致性能下降.”
http://www.percona.com/…/innodb_io.html#innodb_flush_method
因此如果你在ext4上运行InnoDB日志文件 (8G+) , 你可能会考虑 ALL_O_DIRECT, 因为你在ext4上, 你应该设置innodb_log_block_size=4096, ext4里默认的log-block-size , 以避免不对齐的 AIO/DIO 警告.
同样地, 如果你用SSD卡运行, 你也会希望看到innodb_log_block_size=4096 的性能提升。
如果感兴趣, 这里有一些 innodb_log_block_size 的选项:
https://mariadb.com/…variables/#innodb_log_block_size
http://www.percona.com/…/innodb_io_55.html#innodb_log_block_size
希望这会有帮助。
评论删除后,数据将无法恢复
评论(2)
每个变量都可以my.cnf里配置,在phpMyAdmin的变量里也可以看到相关内容。
这里有详细的my.cnf配置说明:
http://dev.mysql.com/doc/refman/5.6/en/server-options.html
优化MySQL多线程以充分利用CPU多核(thread相关项),
充分利用内存(如innodb_buffer_pool_size),
减少磁盘I/O(如innodb_flush_log_at_trx_commit).