469 字
2 分钟
InnoDB Redo Log 如何保证崩溃恢复
  1. 1MySQL 面试复习导读:知识地图与阅读路线
  2. 2MySQL 存储引擎怎么选:InnoDB、MyISAM 与 MEMORY
  3. 3MySQL 索引类型与 B+ 树:结构、分类和失效场景
  4. 4MySQL B+ 树查询全过程:从根节点到页目录
  5. 5InnoDB 聚簇索引与二级索引:什么是回表
  6. 6MySQL 覆盖索引:如何避免回表
  7. 7MySQL 联合索引的最左前缀匹配原则
  8. 8MySQL 索引下推:把过滤提前到存储引擎
  9. 9MySQL 事务异常读:脏读、不可重复读与幻读
  10. 10MySQL 四种事务隔离级别与选型取舍
  11. 11MySQL MVCC:Undo Log、版本链与 ReadView
  12. 12MySQL InnoDB 锁的分类:行锁、表锁与意向锁
  13. 13MySQL 乐观锁与悲观锁:冲突少时重试,冲突多时排队
  14. 14MySQL 发生死锁怎么办:检测、定位与处理
  15. 15MySQL 事务的 ACID 特性分别是什么
  16. 16InnoDB Redo Log 如何保证崩溃恢复本文
  17. 17InnoDB Undo Log 的回滚与 MVCC 作用
  18. 18MySQL Binlog 是什么,和 Redo Log 有什么区别
  19. 19一条 MySQL 查询从连接到返回结果经历什么
  20. 20如何用 EXPLAIN 读懂 MySQL 执行计划
  21. 21MySQL 为什么需要 Redo Log 与 Binlog 两阶段提交
  22. 22MySQL 崩溃后如何恢复已提交事务
  23. 23InnoDB Buffer Pool 如何提升查询与写入性能
  24. 24联合索引应该如何设计
  25. 25InnoDB 快照读与当前读如何处理幻读
  26. 26联合索引范围条件之后的列还能使用吗
  27. 27MySQL 索引看起来失效了,如何判断优化器的选择
  28. 28MySQL 8.0 如何定位并处理 InnoDB 死锁
  29. 29MySQL 慢查询如何定位和优化
  30. 30MySQL 的 ORDER BY、GROUP BY 与 filesort
  31. 31MySQL 普通索引和唯一索引如何选择
  32. 32MySQL 主从复制的基本流程是什么
  33. 33MySQL 主从延迟和读写分离如何处理
  34. 34MySQL 深分页为什么慢,如何改写
  35. 35InnoDB 主键应该如何设计
  36. 36MySQL 字符集与排序规则有什么区别
  37. 37数据库范式与反范式如何取舍

Redo Log 是 InnoDB 的重做日志,记录数据页发生的修改,用于崩溃恢复。更新数据时,InnoDB 通常先在 Buffer Pool 中修改页,并生成 redo 记录;脏页可以稍后批量写回数据文件。事务提交时要求相关 redo 达到配置定义的持久化条件,这就是 Write-Ahead Logging(WAL)的核心:数据页落盘前,描述修改的日志先持久化。

Redo Log 采用循环使用的日志空间。后台线程把脏页写回表空间后,checkpoint 向前推进,表示更早的日志不再是恢复所必需,可以被复用。若脏页刷新跟不上,checkpoint 推进受阻,日志空间压力会增加;过大的长事务也可能造成恢复和回滚成本上升。Redo Log 保存的是引擎恢复需要的信息,不是供用户按 SQL 阅读的完整变更历史。

innodb_flush_log_at_trx_commit 的常见取值:1 表示每次提交将 redo 写入并刷新到稳定存储(具体仍依赖 OS/设备兑现);2 表示每次提交写到 OS 缓存,约每秒刷新;0 表示写入和刷新通常按周期进行。后两者在操作系统崩溃或断电时可能丢失最近提交。周期并非严格实时保证。

追问#

  1. Redo Log 与数据文件有什么关系? 日志先记录页修改,崩溃后重放未反映到数据文件的已提交修改;数据文件仍是最终表数据的持久化载体。
  2. checkpoint 是事务提交点吗? 不是。它表示脏页刷盘进度和可复用日志边界;提交与 checkpoint 是不同概念。
  3. 为什么不每次更新都同步写数据页? 随机写数据页代价高,redo 顺序写入后可由后台合并刷新脏页,提高吞吐。
InnoDB Redo Log 如何保证崩溃恢复
https://blog.xqcherry.top/posts/interview/mysql/redo-log/
作者
xqcherry
发布于
2026-10-12
许可协议
CC BY-NC-SA 4.0