- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MySQL⽇志剖析
说起MySQL的⽇志,有三种类型的⽇志对于MySQL来说是⾄关重要的,这三种⽇志分别为:Binlog、UndoLog和RedoLog。由于Binlog和UndoLog有类似的地⽅,所以按
照如下顺序依次介绍MySQL中的三⼤⽇志原理:UndoLog——RedoLog——Binlog。
UndoLog⽇志
顾名思义,UndoLog的字⾯意思就是撤销操作的⽇志,指的是使MySQL中的数据回到某个状态。
在MySQL数据库中,事务开始之前,MySQL会将待修改的记录保存到UndoLog中,如果数据库崩溃或者事务需要回滚时,MySQL可以通过利⽤UndoLog⽇志,将数据库
中的数据回滚到之前的状态。
MySQL新增、修改和删除数据时,在事务开始前,就会将信息写⼊UndoLog中。事务提交时,并不会⽴刻删除UndoLog,InnoDB存储引擎会将事务对应的UndoLog放⼊
待删除列表中,之后会通过后台的purgethread对待删除的列表进⾏删除处理。这⾥,值得注意的是:UndoLog是⼀种逻辑⽇志,记录的是⼀个变化过程。⽐如,MySQL
执⾏⼀个delete操作,UndoLog就会记录⼀个insert操作;MySQL执⾏⼀个insert操作,UndoLog就会记录⼀个delete操作;MySQL执⾏⼀个update操作,UndoLog就会记
录⼀个相反的update操作。
UndoLog以段的⽅式来管理和记录⽇志信息,在InnoDB存储引擎的数据⽂件中,包含了⼀种叫做rollbacksegment的回滚段,其内部包含了1024个undologsenment。
UndoLog对于MySQL实现事务来说,起着⾄关重要的作⽤,它实现了事务的原⼦性和多版本并发控制,也就是我们经常说的MVCC。
实现事务的原⼦性
UndoLog能够实现MySQL事务的原⼦性,在事务的处理过程中,如果MySQL出现了错误或者⽤户⼿动执⾏了事务的回滚操作(执⾏了rollbac操作),MySQL可以利⽤
UndoLog⽇志将数据库中的数据恢复到之前的状态。
实现MVCC机制
UndoLog在MySQL的InnoDB存储引擎中实现了多版本并发控制(MVCC)机制。事务未提交前,UndoLog保存了未提交之前的版本数据,UndoLog中的数据可以作为旧版
本数据的副本或者快照以便其他并发事务进⾏读取操作。
事务A⼿动开启事务后,对goods数据表中id为1的数据进⾏更新操作,⾸先会把更新命中的数据写⼊到UndoBuffer中。在事务A未提交之前,此时,事务B⼿动开启事务,对
goods数据表中的id为1的数据进⾏查询操作,此时的事务B会读取UndoLog中的数据并返回给客户端,这就是MySQL中的MVCC机制。可以在MySQL中通过下⾯的命令来
查看控制UndoLog⽇志的参数。
showvariableslike%innodb_undo%;
RedoLog⽇志
说了MySQL中的UndoLog,我们再来看看MySQL中的RedoLog⽇志。
顾名思义RedoLog的字⾯意思就是重做⽇志,指的是在数据库出现意外情况时能够对重新执⾏某种操作。
在MySQL中,事务中修改的任何数据,都会将最新的数据写⼊RedoLog中进⾏备份。
在MySQL中,随着事务操作的执⾏,就会产⽣RedoLog⽇志,在事务提交时会产⽣RedoLog并将其写⼊RedoBuffer,RedoBuffer也并不是随着事务的提交就会被⽴刻写
⼊到磁盘中,⽽是等事务操作的脏页写⼊到磁盘之后,RedoLog的使命也就完成了,此时,RedoLog⽇志占⽤的空间可以重新利⽤,会被后续产⽣的RedoLog⽇志覆盖。
RedoLog能够实现事务的持久性,防⽌在发⽣故障的时间点,有脏页未写⼊表的ibd⽂件中,在重启MySQL服务的时候,根据RedoLog进⾏重做,从⽽将未提交的事务
进⾏持久化。这个过程可以简化为下图所⽰。
RedoLog⽂件的内容是以顺序循环的⽅式写⼊⽂件的,写满时就会回到第⼀个⽂件,进⾏覆盖写。
WritePos是当前记录的位置,⼀边写⼀边后移,写到最后⼀个⽂件末尾后就回到0号⽂件开头;
CheckPoint是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据⽂件;
WritePos
您可能关注的文档
- 中考语文:八大题型的解答技巧.pdf
- 华为面试题(附答案)Oracle-DBA数据库管理员JAVA程序员架构师必看.pdf
- 2022年乡村振兴工作计划.pdf
- 加油站员工工作守则.pdf
- 振兴乡村七年级读书笔记.pdf
- oracle试题及答案_原创精品文档.pdf
- 工人职业规划范文推荐.pdf
- “深入浅出数学建模”之主成分分析.pdf
- 2022名著《骆驼祥子》读书心得(5篇)(精编版).pdf
- 七一党课讲稿:基层党员如何发挥模范带头作用.pdf
- 2025四川南充市航务管理局及直属单位遴选(考调)人员9人行测备考题库附答案.docx
- 章贡区教育体育局面向区属学校选调下属事业单位干部行测备考题库附答案.docx
- 2025四川雅安市遴选和选调公务员14人行测备考题库附答案.docx
- 资阳市级部分事业单位2025年公开选调工作人员行测备考题库(2人)附答案.docx
- 2025重庆垫江县公务员遴选33人行测备考题库附答案.docx
- 2025黑龙江齐齐哈尔市纪委监委择优调入人员17人行测备考题库附答案.docx
- 2025年临海市纪委市监委公开选调公务员3名行测备考题库附答案.docx
- 2024届肇庆二模历史试题.docx
- 2024年8月浙江省A9协作体暑假返校联考(扫描版).docx
- 2024届茂名一模化学试题.docx
最近下载
- 10 往事依依 课件(共28张ppt).pptx VIP
- 广东各地暴雨强度公式.docx VIP
- 老年心肺功能减退全流程健康管理方案专家共识解读PPT课件.pptx VIP
- 高中成绩单模板完整可编辑版.docx VIP
- 福建省职业技能等级认定申报表.docx VIP
- 教科版小学科学三年级上册3-6《运动和能量》课件(2025新教材).pptx VIP
- 基于HSV-1的疫苗和融瘤病毒载体的构建.pdf VIP
- 易飞代理商高级生产应用认证考试(答案).docx VIP
- 承插式盘扣脚手架专项施工方案.docx VIP
- 重庆市第八中学校2023-2024学年九年级下学期第4次数学试卷(含答案).docx VIP
原创力文档


文档评论(0)