MySQL 的三种日志:binlog、redolog、undolog
本文最后更新于673 天前,其中的信息可能已经过时,如有错误请发送邮件到2763981847@qq.com

MySQL 的三种日志binlog、redolog、undolog 分别有什么作用、有什么区别?

MySQL 是一款流行的关系型数据库,其日志是其关键功能之一。MySQL 包括三种类型的日志,分别是 binlog、redolog 和 undolog,它们分别有不同的作用和特点。

  • binlog ,binlog(Binary log)是 MySQL 中的二进制日志文件,用于记录 MySQL 服务器上的所有更新和修改操作。它可以记录所有的 DDL(Data Definition Language)和 DML(Data Modification Language)操作,包括对表结构的更改、数据的插入、修改、删除等等。binlog是在事务提交后生成的,因此可以用于恢复数据库
  • redolog ,redolog(Redo log)用于恢复数据,保证数据的一致性和持久性。当 MySQL 发生修改时,redolog 会将这些操作记录下来,并写入磁盘。这样,当 MySQL 发生宕机或崩溃时,通过重放 redolog 就可以恢复数据。
  • undolog,undolog(Undo log)用于回滚操作。当 MySQL 发生事务回滚时,undolog 会记录这些操作并将其写入磁盘。这样,当 MySQL 需要回滚时,通过重放 undolog 就可以回滚事务。

区别:

  • binlog 和 redolog 都是 MySQL 中的二进制日志,但是它们的作用和实现方式有所不同。binlog 是 MySQL 记录所有的操作,而 redolog 则是用于保证数据的一致性和持久性。此外,binlog 是逻辑日志,redolog 是物理日志。binlog 记录的是SQL语句,而 redolog 记录的是数据页的修改,所以 binlog 可以跨平台使用,而 redolog 不能。undolog 和 redolog 的区别是,undolog 是用于回滚操作的,而 redolog 是用于恢复数据的。

补充:

  1. binlog 和 redolog 的记录粒度不同。binlog 记录的是整个 SQL 语句,而 redolog 记录的是操作某个数据页的具体修改内容。因此,在执行一个 SQL 语句时,可能会产生多个 redolog 记录
  2. binlog 和 redolog 的写入时间不同。binlog 是在事务提交后生成的,而 redolog 是在事务执行时就开始写入的。
  3. binlog 和 redolog 的作用不同。binlog 主要用于数据备份和复制,而 redolog 主要用于崩溃恢复和故障转移
  4. undolog 和 redolog 一起使用,用于实现 MySQL 的 MVCC(多版本并发控制)功能。在 MVCC 中,undolog 记录了当前正在执行的事务所做的修改,而 redolog 记录了已经提交的事务所做的修改。这样,在查询时可以根据查询的时间点来选择合适的版本。
  5. MySQL 8.0 引入了新的 redo log 格式,称为“redo log 多线程写入”(Multi-Threaded Redo Log)或“redo log 引擎”(Redo Log Engine)。这个新的 redo log 格式可以提高 MySQL 的写入性能,特别是在高并发环境下。同时,MySQL 8.0 也引入了“Undo Log 分区”(Undo Log Partitions)的功能,可以将 Undo Log 分成多个区域,从而提高 MySQL 的并发能力。

文章:MySQL 的三种日志:binlog、redolog、undolog
作者:oreki
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议。转载请注明文章地址及作者

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇