- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
图文04借着更新语句在InnoDB存储引擎中的执行流程,聊聊binlog是什么?手机观看
1868人次阅读2020-01-1607:00:00
详情评论
借着更新语句在InnoDB存储引擎中的执行流程,聊聊binlog是什么?
如何提问:每篇文章都有评论区,大家可以尽情留言提问,我会逐一答疑
如何加群:购买狸猫技术窝专栏的小伙伴都可以加入狸猫技术交流群,一个非常纯粹的技术交流的地方
具体加群方式,请参见目录菜单下的文档:《MySQL专栏付费用户如何加群》(购买后可见)
1、上一讲思考题解答:redo日志刷盘策略的选择建议
先给大家解释一下上一讲的思考题,我给大家的一个建议,其实对于redo日志的三种刷盘策略,我们通常建议是设置
为1
也就是说,提交事务的时候,redo日志必须是刷入磁盘文件里的。
这样可以严格的保证提交事务之后,数据是绝对不会丢失的,因为有redo日志在磁盘文件里可以恢复你做的所有修
改。
如果要是选择0的话,可能你提交事务之后,mysql宕机,那么此时redo日志没有刷盘,导致内存里的redo日志丢失,
你提交的事务更新的数据就丢失了;
如果要是选择2的话,如果机器宕机,虽然之前提交事务的时候,redo日志进入oscache了,但是还没进入磁盘文
件,此时机器宕机还是会导致oscache里的redo日志丢失。
所以对于数据库这样严格的系统而言,一般建议redo日志刷盘策略设置为1,保证事务提交之后,数据绝对不能丢失。
2、MySQLbinlog到底是什么东西?
接着我们来看看MySQLbinlog到底是个什么东西?
实际上我们之前说的redolog,他是一种偏向物理性质的重做日志,因为他里面记录的是类似这样的东西,“对哪个
数据页中的什么记录,做了个什么修改”。
而且redolog本身是属于InnoDB存储引擎特有的一个东西。
而binlog叫做归档日志,他里面记录的是偏向于逻辑性的日志,类似于“对users表中的id=10的一行数据做了更新操
作,更新以后的值是什么”
binlog不是InnoDB存储引擎特有的日志文件,是属于mysqlserver自己的日志文件。
3、提交事务的时候,同时会写入binlog
所以其实我们上一讲讲到,在我们提交事务的时候,会把redolog日志写入磁盘文件中去。然后其实在提交事务的时
候,我们同时还会把这次更新对应的binlog日志写入到磁盘文件中去,如下图所示。
大家可以在这个图里看到一些变动,就是我把跟InnoDB存储引擎进行交互的组件加入了之前提过的执行器这个组件,
他会负责跟InnoDB进行交互,包括从磁盘里加载数据到BufferPool中进行缓存,包括写入undo日志,包括更新
BufferPool里的数据,以及写入redologbuffer,redolog刷入磁盘,写binlog,等等。
实际上,执行器是非常核心的一个组件,负责跟存储引擎配合完成一个SQL语句在磁盘与内存层面的全部数据更新操
作。
而且我们在上图可以看到,我把一次更新语句的执行,拆分为了两个阶段,上图中的1、2、3、4几个步骤,其实本质
是你执行这个更新语句的时候干的事。
然后上图中的5和6两个步骤,是从你提交事务开始的,属于提交事务的阶段了。
4、binlog日志的刷盘策略分析
对于binlog日志,其实也有不同的刷盘策略,有一个sync_binlog参数可以控制binlog的刷盘策略,他的默认值是0,
此时你把binlog写入磁盘的时候,其实不是直接进入磁盘文件,而是进入oscache内存缓存。
所以跟之前分析的一样,如果此时机器宕机,那么你在oscache里的binlog日志是会丢失的,我们看下图的示意
如果要是把sync_binlog参数设置为1的话,那么此时会强制在提交事务的时候,把binlog直接写入到磁盘文件里去,
那么这样提交事务之后,哪怕机器宕机,磁盘上的binlog是不会丢失的,如下图所示
5、基于binlog和redolog完成事务的提交
当我们把binlog写入磁盘文件之后,接着就会完成最终的事务提交,此时会把本次更新对应的binlog文件名称和这次
您可能关注的文档
- 从0开始带你成为MySQL实战高手03 用一次数据更新流程,初步了解InnoDB存储引擎的架构设计.pdf
- 从0开始带你成为MySQL实战高手06 生产经验:互联网公司的生产环境数据库是如何进行性能测试的.pdf
- 从0开始带你成为MySQL实战高手08 生产经验:在数据库的压测过程中,如何360度无死角观察机器性能.pdf
- 2025四川事业编FB综合岗考试-综合能力测试讲义-第二篇法律.pdf
- 25上半年2期套题班-行政职业能力测验(四).docx
- 25上半年2期套题班-行政职业能力测验(六).docx
- 柯林斯词典词频分级词汇(五到一星)实用.doc
- 绝命du师第三季(中英对照版).pdf
- 2025年秋季新人教版PEP版3年级英语上册全册课件.pptx
- 2025年秋季新人教版PEP版3年级英语上册全册教学课件.pptx
- 25上半年2期套题班-行政职业能力测验(八).docx
- 公考讲义-2025年1月时政汇总.pdf
- 2025年省考逻辑填空1000 高频实词积累+刷题早读课 讲义.pdf
- 25上半年2期套题班-行政职业能力测验(九).docx
- 2025四川事业编FB综合岗考试-综合能力测试讲义-主观题基础,案例分析题,公文写作及文章写作题.pdf
- 25上半年2期套题班-行政职业能力测验(五).docx
- 2025申论多省联考刷题课真题资料-2025国考执法课程.doc
- 2025申论多省联考刷题课真题资料-2024江西执法课程.doc
- 25上半年2期套题班-行政职业能力测验(十).docx
- 2025申论多省联考刷题课真题资料-2024福建县乡课程.doc
最近下载
- TCCIAT_0003-2019_建筑施工承插型轮扣式模板支架安全技术规程.doc
- 2024《比亚迪汽车公司成本管理存在的问题、原因及完善对策研究(数据图表论文)14000字》.docx VIP
- 外卖骑手安全培训课题.pptx VIP
- 统编人教版高中化学(必修二)第五章第二节《氮及其化合物》优质说课稿.pdf VIP
- 2022-2023学年广东省深圳中学七年级下学期期中数学试卷及答案解析.pdf
- 人教版七年级下册英语全册新质教学课件(配2025年春改版教材).pptx
- 人教版二年级下册数学《小小设计师 》(课件).pptx
- 骑手培训关于骑手的服务态度.pptx VIP
- CK5110×8/2数控高速单柱立式车床使用说明书.doc
- 生物转盘污水处理技术的研究进展及展望.doc VIP
文档评论(0)