Redo Log 和 Undo Log

发布时间:2026/10/15 13:49:07
Redo Log 和 Undo Log 一、Redo Log重做日志重做日志记录的是事务提交时数据页的物理修改是用来实现事务的持久性。该日志文件由两部分组成重做日志缓冲redo log buffer以及重做日志文件redo log file前者是在内存中后者在磁盘中。当事务提交之后会把所有修改信息都存到该日志文件中用于在刷新脏页到磁盘发生错误时进行数据恢复使用。为什么需要 Redo Log没有 redo log 的情况下事务提交↓把 Buffer Pool 中修改的数据页随机写到磁盘 .ibd 文件↓问题一个事务可能修改多个数据页这些页在磁盘上分散存放↓产生大量【随机写】→ 极慢 → 数据库吞吐量暴跌两个致命问题慢数据页是随机写磁头来回寻道吞吐量暴跌。丢如果提交时刷盘失败或断电数据无法恢复。用 Redo Log顺序写的情况下事务提交↓只把改了啥追加写到 redo log顺序写快↓数据页先放内存后台慢慢刷盘↓若崩溃 → 用 redo log 重做数据不丢价值说明提速顺序写替代随机写提交响应快随机 IO 被后台合并持久化提交时把修改记录顺序写入磁盘WAL只要日志在就能重做出数据二、Undo Log回滚日志Undo Log 记录的是数据被修改前的旧值逻辑日志当事务需要回滚时用它把数据恢复到修改前的状态。修改前余额 100↓ UPDATE修改后余额 200↓ 记录 undo logundo log余额 100旧值记录的是反向操作旧值用于撤销。与 Redo Log 相反Redo 记新值重做Undo 记旧值撤销。三、Redo Log 和 Undo Log 的区别维度Redo Log重做日志Undo Log回滚日志记录内容记录的是数据页的物理变化记录的是逻辑日志核心作用服务宕机时用来同步数据崩溃恢复当事务回滚时通过逆操作恢复原来的数据保证特性保证了事务的持久性D保证了事务的原子性A和一致性C通俗理解数据坏了/丢了靠它重做回来数据改错了靠它撤销回去

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询