目录
- Undo Log
- Undo Log作用
- Redo Log
- Redo Log 的生成和释放
- Redo Log 工作原理
- Redo Log 写入机制
- Redo Log相关配置参数
Undo Log
数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。

Undo Log产生和销毁
Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进行回收处理。
Undo Log属于逻辑日志,记录一个变化过程。例如执行一个delete,undolog会记录一个insert;执行一个update,undolog会记录一个相反的update。
Undo Log存储
Undo log采用段的方式管理和记录。在innodb数据文件中包含一种rollback segment回滚段,内部包含1024个undo log segment。可以通过下面一组参数来控制Undo log存储。
show variables like '%innodb_undo%';
Undo Log作用
实现事务的原子性
Undo Log 是为了实现事务的原子性而出现的产物。事务处理过程中,如果出现了错误或者用户执行了 ROLLBACK 语句,MySQL 可以利用 Undo Log 中的备份将数据恢复到事务开始之前的状态。
实现多版本并发控制(MVCC)
Undo Log 在 MySQL InnoDB 存储引擎中用来实现多版本并发控制。事务未提交之前,Undo Log保存了未提交之前的版本数据,Undo Log 中的数据可作为数据旧版本快照供其他并发事务进行快照读。
事务A手动开启事务,执行更新操作,首先会把更新命中的数据备份到 Undo Buffer中。
事务B手动开启事务,执行查询操作,会读取 Undo 日志数据返回,进行快照读
Redo Log
指事务中修改的任何数据,将最新的数据备份存储的位置(Redo Log),被称为重做日志。
Redo Log 的生成和释放
随着事务操作的执行,就会生成Redo Log,在事务提交时会将产生Redo Log写入Log Buffer,并不是随着事务的提交就立刻写入磁盘文件。
等事务操作的脏页写入到磁盘之后,Redo Log 的使命也就完成了,Redo Log占用的空间就可以重用(被覆盖写入)。
Redo Log 工作原理
Redo Log 是为了实现事务的持久性而出现的产物。防止在发生故障的时间点,尚有脏页未写入表的 ibd 文件中,在重启 MySQL 服务的时候,根据 Redo Log 进行重做,从而达到事务的未入磁盘数据进行持久化这一特性。
Redo Log 写入机制
Redo Log 文件内容是以顺序循环的方式写入文件,写满时则回溯到第一个文件,进行覆盖写
write pos 是当前记录的位置,一边写一边后移,写到最后一个文件末尾后就回到 0 号文件开头;
checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件;
write pos 和 checkpoint 之间还空着的部分,可以用来记录新的操作。如果 write pos 追上checkpoint,表示写满,这时候不能再执行新的更新,得停下来先擦掉一些记录,把checkpoint 推进一下。
Redo Log相关配置参数
每个InnoDB存储引擎至少有1个重做日志文件组(group),每个文件组至少有2个重做日志文件,默认为ib_logfile0和ib_logfile1。可以通过下面一组参数控制Redo Log存储
show variables like '%innodb_log%';
Redo Buffer 持久化到 Redo Log 的策略,可通过 Innodb_flush_log_at_trx_commit 设置
0:每秒提交 Redo buffer ->OS cache -> flush cache to disk,可能丢失一秒内的事务数据。由后台Master线程每隔 1秒执行一次操作。
1(默认值):每次事务提交执行 Redo Buffer -> OS cache -> flush cache to disk,最安全,性能最差的方式。
2:每次事务提交执行 Redo Buffer -> OS cache,然后由后台Master线程再每隔1秒执行OS cache -> flush cache to disk 的操作。
一般建议选择取值2,因为 MySQL 挂了数据没有损失,整个服务器挂了才会损失1秒的事务提交数据。
以上就是MySQL 撤销日志与重做日志(Undo Log与Redo Log)相关总结的详细内容,更多关于MySQL 撤销日志与重做日志(Undo Log与Redo Log)的资料请关注其它相关文章!
相关推荐:
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
pbootcms自动翻译插件,让你的网站轻松实现多语言覆盖,ai 镀金
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
ChatGPT网页版内容显示不全的原因与解决方案,ai超级绘
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
ChatGPT常见问题汇总:解答你关于AI的一切疑惑,松鼠ai智能教适应教育
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
什么是seo的豆子,何为seo ,ai圆复制
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
SEO招标:如何通过专业SEO服务助力企业脱颖而出,牡丹江关键词排名怎么样
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式
Bing学术搜索结果不显示时间?如何解决这一问题,提升学术研究效率!,ai怎么参考线
文字生成AI:开启创意写作的新纪元
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
SEO应该如何提升网站流量与排名?揭秘成功的SEO策略,肺炎疫苗推广营销
AI代写文章:高效创作的新风尚
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
SEO学堂:开启数字营销新时代,全面提升网站排名与流量,文山ai营销推广方案
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
SEO技巧提升网站流量:打造高效网站的关键策略,Ai测脸相
seo简介主要写什么,seo主要内容 ,AI弧线这
SEO售产-数字营销新战场,助力企业实现盈利增长,去哪找自贡网站建设
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
SEO观看:如何通过优化提升您的网站流量和品牌影响力,龙里网络营销推广
AI工具,让工作效率翻倍:AI工具教程全面解析
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
英语日记AI生成:轻松提升英语水平的智能助手
用AI优化文章,轻松提升内容质量与创作效率
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
SEO监控:精准把握网站排名与优化成效的利器,湖南seo排名商家名单
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
什么是seo在线咨询,什么是seo在线咨询服务 ,unreal ai
SEO但是,这些常见误区你真的知道吗?,凤岗网站建设开发
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
SEO笔记:如何打造高效的SEO策略提升网站排名,网站优化优质服务方案
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
360优化关键词-提升网站流量与排名的秘密武器,美拍ai
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
seo高手有什么条件,seo难上手吗 ,指南ai写作电力创新
ChatGPT故障:科技背后的秘密与应对策略,华为什么手机带ai功能
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗