- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预读机制
两种预读算法
1、线性预读
2、随机预读
对预读的监控
一、预读机制
InnoDB在I/O的优化上有个比较重要的特性为预读,预读请求是一个i/o请求,它会异步地在缓冲池中预先回迁多个页面,预计很快就会需要这些页面,这些请求在一个范围内引入所有页面。InnoDB以64个page为一个extent,那么InnoDB的预读是以page为单位还是以extent?
?
数据库请求数据的时候,会将读请求交给文件系统,放入请求队列中;相关进程从请求队列中将读请求取出,根据需求到相关数据区(内存、磁盘)读取数据;取出的数据,放入响应队列中,最后数据库就会从响应队列中将数据取走,完成一次数据读操作过程。
接着进程继续处理请求队列,(如果数据库是全表扫描的话,数据读请求将会占满请求队列),判断后面几个数据读请求的数据是否相邻,再根据自身系统IO带宽处理量,进行预读,进行读请求的合并处理,一次性读取多块数据放入响应队列中,再被数据库取走。(如此,一次物理读操作,实现多页数据读取,rrqm0(# iostat -x),假设是4个读请求合并,则rrqm参数显示的就是4)
?
二、两种预读算法
InnoDB使用两种预读算法来提高I/O性能:线性预读(linear read-ahead)和随机预读(randomread-ahead)
为了区分这两种预读的方式,我们可以把线性预读放到以extent为单位,而随机预读放到以extent中的page为单位。线性预读着眼于将下一个extent提前读取到buffer pool中,而随机预读着眼于将当前extent中的剩余的page提前读取到buffer pool中。
1、线性预读(linear read-ahead)
线性预读方式有一个很重要的变量控制是否将下一个extent预读到buffer pool中,通过使用配置参数innodb_read_ahead_threshold,控制触发innodb执行预读操作的时间。
如果一个extent中的被顺序读取的page超过或者等于该参数变量时,Innodb将会异步的将下一个extent读取到buffer pool中,innodb_read_ahead_threshold可以设置为0-64的任何值(因为一个extent中也就只有64页),默认值为56,值越高,访问模式检查越严格。
mysql show variables like ‘innodb_read_ahead_threshold‘;+++| Variable_name | Value |+++| innodb_read_ahead_threshold | 56 |+++
例如,如果将值设置为48,则InnoDB只有在顺序访问当前extent中的48个pages时才触发线性预读请求,将下一个extent读到内存中。如果值为8,InnoDB触发异步预读,即使程序段中只有8页被顺序访问。
可以在MySQL配置文件中设置此参数的值,或者使用SET GLOBAL需要该SUPER权限的命令动态更改该参数。
在没有该变量之前,当访问到extent的最后一个page的时候,innodb会决定是否将下一个extent放入到buffer pool中。
2、随机预读(randomread-ahead)
随机预读方式则是表示当同一个extent中的一些page在buffer pool中发现时,Innodb会将该extent中的剩余page一并读到buffer pool中。
mysql show variables like ‘innodb_random_read_ahead‘;+++| Variable_name | Value |+++| innodb_random_read_ahead | OFF |+++
由于随机预读方式给innodb code带来了一些不必要的复杂性,同时在性能也存在不稳定性,在5.5中已经将这种预读方式废弃,默认是OFF。若要启用此功能,即将配置变量设置innodb_random_read_ahead为ON。
?
三、监控Innodb的预读
1、可以通过show engine innodb status\G显示统计信息
mysql show engine innodb status\G BUFFER POOL AND MEMORY …… Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s ……
1、Pages read ahead:表示每秒读入的pages;
2、evi
您可能关注的文档
- 2019-2020年苏教版数学必修一讲义:第2章+2.1.2 函数的表示方法及答案.doc
- 2019-2020年北师大版数学选修2-3课时分层作业3 排列的应用.doc
- 人教版新目标七年级英语上册Unit-5-精学笔记2.docx
- 2019秋华师大版科学八年级上册同步测试试题:2.4 流体的压强与流速的关系.docx
- 2019-2020年度北师大版高中英语新起点课件:必修1-Unit-2-Lesson-1.ppt
- 2019-2020年人教版政 治选修三讲义:专题3+3 美国的三权分立及答案.doc
- 2019-2020年苏教版生物必修一讲义:第3章+第2节+第3课时 细胞核 细胞的生物膜系统及答案.doc
- 中级经济法-第5讲-第四章考点.doc
- 高中信息技术教案设计:Windows XP入门1.doc
- 2019-2020年新培优同步人教A版数学必修二练习:2.2.1 直线与平面平行的判定.docx
- 燕子矶体育公园项目建议书2018.09.11-nyj.docx
- 浙教版 信息技术 七年级下册 第十六课 动画效果添生动 课程教学设计.doc
- 激发农村小学生低年级数学学习兴趣策略的研究.doc
- 初中物理知识点复习总结(自理).doc
- 2019-2020年人教版政 治选修五课时分层作业5 依法行使财产权.doc
- 区域地理-欧洲西部和德国.ppt
- 2019-2020年人教版政 治选修五讲义:专题4+1 通往就业之路及答案.doc
- 高中信息技术基础课件:第1章信息和社会.ppt
- 2019-2020年人教版物理选修3-4讲义:第14章+章末复习课及答案.doc
- 建筑智能化工程设计步骤和内容说明.docx
最近下载
- 通用设备技术规程-联轴器维修技术标准200808.doc VIP
- 2025呼和浩特粮油收储有限公司招聘18名工作人员笔试参考题库附答案解析.docx VIP
- 2025四川爱众发展集团有限公司第二批次招聘5人笔试备考题库及答案解析.docx VIP
- T/CAQP 001-2017_汽车零部件质量追溯体系规范.pdf VIP
- 全运动员选拔与训练实施方案.doc VIP
- 财务管理在交通与道路工程中的应用.pptx VIP
- 【武汉版】《生命安全教育》六年级 第4课《相信自己》课件.pptx VIP
- 国庆节的国庆文化知识竞赛.docx VIP
- 幼儿园膳食委员会会议记录.pdf VIP
- T SHAEPI 001—2022 净味环保沥青气态污染物减排性能技术要求.pdf VIP
文档评论(0)