innodb_buffer_pool_size没有减少iowait

时间:2015-08-06 21:22:40

标签: mysql database-performance

我在服务器上运行查询时,mysqld进程看到了大量的iowait CPU使用情况。我已经阅读了innodb_buffer_pool_size设置,并且使此值高于默认值128M应该会对减少iowait产生积极影响(因为它会将数据库信息缓存在内存中)。

我已将innodb_buffer_pool_size的值更改为3GB(并通过检查正在运行的mysql中的变量来验证设置),并且我的mysqld进程的虚拟内存使用已经相应地增加,但我仍然看到非常高的iowait数字(并且mysql只有一个小的驻留内存占用)。

除了innodb_buffer_pool_size之外还有什么可以帮助减少iowait(用于读取操作)。

1 个答案:

答案 0 :(得分:0)

事实证明我运行的其中一个查询中有一个Order By子句,由于我返回的数据大小,Order By强制在磁盘上完成排序(不在记忆中)。我的修复是从查询中删除Order By,然后在我的应用程序的内存中进行排序。