MySQL三大日志

作者: 蓝色猫猫 | 来源:发表于2022-07-20 19:25 被阅读0次

    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

    用于回滚异常操作

    相关文章

      网友评论

        本文标题:MySQL三大日志

        本文链接:https://www.haomeiwen.com/subject/ntryirtx.html