读书频道 > 网站 > 网页设计 > MySQL管理之道:性能调优、高可用与监控
1.1.11 预读算法的变化
14-02-20    奋斗的小年轻
收藏    我要投稿   
本书由资深MySQL专家撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服立即去当当网订购

InnoDB有两种预读算法可提高I/O性能,一种是线性预读,另一种是随机预读。

线性预读:当顺序读取extent块(包含64个page)innodb_read_ahead_threshold设置的page页数量时,触发一个异步读取请求,将下一个页提前读取到buffer pool中。在MySQL5.1.X版本中,顺序读取extent块最后一个页时,InnoDB决定是否将下一个页提前读取到InnoDB_Buffer_Pool缓冲池中。

随机预读:如果在InnoDB_Buffer_Pool缓冲池中发现同一个extent块内有若干个页,那么会触发一个异步读取请求,把剩余的页读取进来,随机预读增加了不必要的复杂性,常常导致性能下降,因此,在MySQL5.5.X版本中已经将其删除了。

innodb_read_ahead_threshold参数默认是56,可动态更改。你可以使用命令“show engine innodb status\G;”来查看当前的情况:
----------------------
BUFFER POOL AND MEMORY
...
...
...
Pages read ahead 1510.10/s, evicted without access 0.00/s
...

其中:

Pages read ahead:表示每秒预读了多少页。

evicted without access:表示预读的页没有被访问,每秒被踢出了多少页。

如果你发现有很多evicted without access,说明设置的值太小了,应该增大。

关于innodb_read_ahead_threshold参数的介绍,请参见MySQL5.5手册:

 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站