我怎样才能降低MySQL单页面读取?

我的innodb缓冲池大小是8GB,我的数据库是6GB的大小,但我看到这个:

Innodb_buffer_pool_reads 263.5k – InnoDB无法从缓冲池满足的逻辑读取次数,必须进行单页读取。

随着硬件(i7,24GB内存,固态硬盘)和那么多的RAM可用为什么查询做“单页面读取?

我怎样才能减less这个数量的单页面读取?

为什么这些查询做“单页面读取?

因为这些页面在引擎可用之前至less要被读入缓冲池中一次。 看看你的数字263,500读取将考虑

263,500 pages x 16 KB/page = 4,216,000 KB read 

这甚至不如数据库的大小。 另外,与你的3,500,000,000个innodb_buffer_pool_read_requests相比,这是一个很小的数字 – 在你的情况下,几乎所有的东西都是从没有磁盘I / O的缓冲池中提供的。

所以这些数字不是以字节为单位..但是#查询..从math看来,你是非常低的这是一件好事。 math是

 (Innodb_buffer_pool_read_requests / Innodb_buffer_pool_reads) * 100 

如果这个数字小于1,那么你的状态良好。 另一个很好的方法来知道你是否需要更多的内存池

 SHOW ENGINE INNODB STATUS; 

往顶部看,你会看到这个

 Buffer pool hit rate 1000 / 1000, young-making rate 1 / 1000 not 0 / 1000 

如果你接近1000/1000这是一件好事。 任何东西低于900/1000我开始增加更多的内存。