首页 文章

mysql innodb:innodb_flush_method

提问于
浏览
6

在以下链接中

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_method

它说:这个变量的不同值可以对InnoDB性能产生显着影响 . 例如,在InnoDB数据和日志文件位于SAN上的某些系统上, it has been found that setting innodb_flush_method to O_DIRECT can degrade performance of simple SELECT statements by a factor of three.

为什么O_DIRECT会降低select语句的速度?

2 回答

  • 6

    O_DIRECT绕过操作系统的缓存系统 . SAN可能是一个非常快速的存储系统,但通常它将通过网络链接在其他地方并代理/隐藏在各种其他层之后 . 通过使用消除本地缓存的O_DIRECT,您可以强制InnoDB每次都直接访问存储系统 .

  • 2

    您真的需要在硬件上试验flush方法,看看哪种方法最适合您 . 设置:

    innodb_flush_method = O_DIRECT

    使用戴尔PERC缓存控制器在RAID 1配置中配置15K RPM SAS驱动器的Dell 2950服务器上,我们的性能提高了15% . 我们正在运行Ubuntu 9.04库存内核,大部分工作都是使用innodb的mysql . 你的旅费可能会改变 .

相关问题