我的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我开始增加更多的内存。