MySQL中重做日志,undo日志和binlog三者的区别是什么

介绍

今天就跟大家聊聊有关MySQL中重做日志,undo日志和binlog三者的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

事务的实现

重做日志保证事务的持久性,undo日志用来帮助事务回滚及MVCC的功能。

InnoDB存储引擎体系结构

 MySQL中重做日志,undo日志和binlog三者的区别是什么

 MySQL中重做日志,undo日志和binlog三者的区别是什么

重做日志

提前写日志策略

事务提交时,先写重做日志再修改页;当由于发生宕机而导致数据丢失时,就可以通过重做日志来完成数据的恢复。

<李>

InnoDB首先将重做日志信息先放到重做日志缓存

<李>

按一定频率刷新到重做日志文件

重做日志文件:在默认情况,InnoDB存储引擎的数据目录下会有两个名为ib_logfile1和ib_logfile2的文件。每个InnoDB存储引擎至少有1个重做日志文件组(组),每个文件组下至少有2个重做日志文件。

下面图一,很好说明重做日志组以循环写入方式运行,InnoDB存储引擎先写ib_logfile1,当达到文件最后时,会切换至重做日志文件ib_logfile2。null

MySQL中重做日志,undo日志和binlog三者的区别是什么