编辑
2023-11-24
mysql
00
请注意,本文编写于 533 天前,最后修改于 533 天前,其中某些信息可能已经过时。

MySQL的redo log、undo log和relay log是MySQL数据库中的不同类型的日志文件,它们各自具有不同的作用和功能。

  1. Redo Log(重做日志):

    • 概念:Redo log是InnoDB存储引擎层生成的日志,用于实现事务的持久性。
    • 组成:Redo log由两部分组成,即重做日志缓冲(redo log buffer)和重做日志文件(redo log file)。重做日志缓冲位于内存中,而重做日志文件存储在磁盘上。
    • 作用:Redo log的主要作用是确保事务的持久性。当事务提交时,相关的修改操作会首先被记录到重做日志缓冲中,然后异步地刷新到磁盘的重做日志文件中。这样,在数据库发生故障或崩溃时,可以通过重做日志文件中的日志信息来恢复未完成的事务,保证数据的一致性和完整性。
  2. Undo Log(回滚日志):

    • 概念:Undo log也是InnoDB存储引擎层生成的日志,用于实现事务的原子性和MVCC(多版本并发控制)。
    • 作用:Undo log的主要作用是支持事务的回滚操作和MVCC。在执行事务期间,Undo log会记录事务执行前的数据版本,以便在事务回滚时可以撤销对数据的修改。此外,Undo log还与ReadView结合使用,实现了数据库的多版本并发控制,保证了不同事务之间的数据隔离性。
  3. Relay Log(中继日志):

    • 概念:Relay log是MySQL复制过程中的日志文件,用于主从复制的数据同步。
    • 作用:Relay log的主要作用是在MySQL主从复制中传递和存储复制事件。当启用主从复制时,主服务器会将其二进制日志(binlog)中的事件写入到中继日志中,然后从服务器会读取中继日志中的事件并应用到自己的数据库中,从而实现主从服务器之间的数据同步。

Learn more:

  1. MySQL 日志:undo log、redo log、binlog 有什么用? | 小林coding
  2. mysql日志:redo log、binlog、undo log 区别与作用-腾讯云开发者社区-腾讯云
  3. 【图文详解】MySQL系列之redo log、undo log和binlog详解-腾讯云开发者社区-腾讯云

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!