MySQL三大日志

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

用于回滚异常操作

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容