MySQL三大日志

更新时间:2025-02-28 分类:运营笔记 浏览量:2

redo log

  • 作用:用于崩溃恢复,保证数据持久性和完整性

  • 刷盘时机:默认每次事务提交都会进行刷盘操作

  • 事务在更新数据的时候就会写redo log,只不过这时只写进redo log buffer,不刷盘一旦崩了就丢失数据了,(后台有每隔一秒刷一次盘的线程)

  • redo log在硬盘上是以日志文件组的多文件形式存储,而且多文件之间采用环形数组形式,从头向尾写

bin log

作用:记录表更新内容,用于数据备份、主从同步数据,保证数据一致性

写入机制:事务启动,binlog先写进缓存,事务提交的时候才会刷到磁盘中

两阶段提交

redo log(重做日志)让InnoDB存储引擎拥有了崩溃恢复能力。

binlog(归档日志)保证了MySQL集群架构的数据一致性。

两阶段提交时为了保证两个日志一致。

过程:在事务中,修改数据,写入redo log(prepare阶段),提交事务,写入bin log,设置redo log(commit)阶段。只要redo log(prepare阶段)和bin log数据一致,事务提交就可以成功

undo log

用于回滚异常操作