欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Mysql的undo、redo、bin log分析

发布时间:2023/12/1 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Mysql的undo、redo、bin log分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

  • 关于undo log
  • 关于redolog
  • 关于binlog
  • 一个事务的提交流程

undo log :记录数据被修改之前的样子
redo log:记录数据被修改之后的样子
bin log:记录整个操作。

关于undo log

关于undo log:

在执行一条涉及数据变更的sql时,在数据加载到buffer Pool时,同时会在undo log写入原来的记录。

关于redolog

关于redo log
mysql对于数据操作是在内存(buffer Pool)中的。但是断电时,内存数据会全部丢失。redo log 记录数据修改之后的值,不管事务是否提交都会记录下来。

当redo log buffer可能会出现异常情况:
case1 :redo log buffer 中的数据未能及时写入磁盘,系统宕机。mysql认为该操作为失败操作,重启之后数据回滚
case2 : redo log buffer 刷入磁盘成功之后宕机,那么重启之后mysql会加载redo 内容到buffer Pool中。(redo log commit 才算成功)

关于binlog

关于bin log:记录整个操作过程,主要应用场景:主从数据同步

一个事务的提交流程

1、首先执行器根据mysql的执行计划来查询数据,如果buffer Pool中没有,就去数据库中查询,查询到了再将其放到缓存池中。
2、在数据被缓存到缓存池的同时,会写入undo log日志文件
3、更新的动作是在缓存池中完成的。同时会将更新后的数据添加到redo log buffer中
4、将redo log buffer 中数据刷入到redo log文件中
5、将本地操作记录写入到bin log文件中
6、将bin log文件名字和更新内容在binlog中位置记录到redo log中,同时在redo log最后添加commit 标记。

总结

以上是生活随笔为你收集整理的Mysql的undo、redo、bin log分析的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。