写点什么

Mysql 事务的实现原理之 Redo Log 的分析

作者:卢卡多多
  • 2021 年 11 月 17 日
  • 本文字数:623 字

    阅读完需:约 2 分钟

Mysql事务的实现原理之Redo Log的分析

MySQL 是免费开源数据库的领头羊,其中很多企业都会用到这种数据库作为,数据关系表的工具。


MySQL 的事务:


  • InnoDb 引擎本身是支持事务的

  • Mysql 事务的实现分为 ACID,原子隔离一致持久性

  • 其中原子性和持久性===>来源于 Redo Log

  • 事务的隔离性--->MVCC 机制来确定的

  • 一致性由 Undo Log 来实现

1.Redo log 的基本原理

其中 mysql 的中,持久性和原子性都是有 Redo log 来实现的,事务的操作要么执行成功,要么全部失败;


Redo Log 这个 “重做日志”,其中主要是存储引擎内部产生的,主要是用来保证事务的持久性和原子性,


其中主要是做物理日志,记录数据的修改操作写入磁盘中, 如果恢复的话,也只能恢复到最后一次提交的位置。


Redo Log 分为两个部分:


  • redo log buffer -->日志缓存 ,这里是存在于内存中的数据,容易丢失;

  • 2.redo log file -->日志文件,这里是用于持久化到次哦按上的,不容易丢失;

redo log 的运行原理

当 MySQL 事务发送异常的时候,内存中的脏数据写入数据表的 IBD 文化,


在重启 MySQL 是服务时候,可以根据 redo log 事务恢复事务已经提交但是还未写入 IBD 文件的数据,从而对事务提交的数据操作进行持久化操作;


其中是主要对于 Redo log 中,将数据 日志缓存的数据-->从内存持久化到日志文件中, 然后日志文件在 mysql 异常的时候,将恢复之前提交提交的事务,但是可能没有保存到数据库 IBD 文件的数据操作。

redo log 图解


一般加载 IBD 文件之后,会完成数据的查询和更新,也可以正常的持久化数据,便于下次使用。


对于持久化的 IBD 文件,就是一个数据文件

发布于: 1 小时前阅读数: 6
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
Mysql事务的实现原理之Redo Log的分析