我是靠谱客的博主 迷你嚓茶,最近开发中收集的这篇文章主要介绍Mysql binlog、redolog、undolog 的区别与作用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. binlog是Mysql Service层记录的日志,undolog、relog 是InnoDB引擎记录的日制,用以来支持事务。

2. binlog 中记录的是数据库所有增删改操作(sql语句),逻辑日制,relog记录的是数据库事务操作中产生的变化,记录修改后的值,undolog记录事务操作前的数据值。

例如某一事务的事务序号为T1,其对数据X进行修改,设X的原值是5,修改后的值为15,那么Undo日志为<T1, X, 5>,Redo日志为<T1, X, 15>。

3. 对于事务的修改,binlog只会在事务提交后进行记录。

4. binlog日志不会循环使用,当binlog 写满时,会另写一个binlog文件, relog 文件是循环使用的。
5. binlog 适合用来备份, 主从复制就是根据binlog 来实现数据同步的。

6. undolog 日志是Mysql用来实现事务原子性的,在InnoDB引擎中,undolog还可以用来实现多版本并发控制。

7. 事务的持久化: relog , relog在事务执行的过程中不断记录事务操作的变化,relog日志有prepare和commit两种状态(来保证binlog与relog 的一致性),事务操作完成并且binlog写入完成时,relog会从prepare状态转变为commit 状态,若在事务过程中发生系统故障时,数据库会根据relog日志状态(prepare状态)恢复到事务前的状态;若事务已成功提交但数据未更新,数据库会根据relog日志(此时为commited状态)更新到事务完成后的状态。

8. 事务的原子性: undolog,事务在执行的过程中,操作任何数据之前先将数据备份到undolog中,事务失败时可根据undolog进行回滚。

 

最后

以上就是迷你嚓茶为你收集整理的Mysql binlog、redolog、undolog 的区别与作用的全部内容,希望文章能够帮你解决Mysql binlog、redolog、undolog 的区别与作用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部