InnoDB Log 漫游(2)
这篇文章深入探讨了 InnoDB 日志体系中的核心内容——“日志本身”。作者聚焦于 redo log 与 undo log 这两类关键日志,详细拆解了它们各自记录的内容、结构以及在不同事务场景下的协作方式。 文章清晰地对比了二者的根本差异:redo log 记录的是页面物理修改的“结果”,用于保证事务的持久性;而 undo log 记录的是逻辑操作的“逆过程”,用于支持事务回滚和 MVCC 实现。这种对比不仅停留在概念层面,还结合了事务提交、崩溃恢复等具体流程,阐释了为什么必须同时需要这两类日志。 文中对日志块结构、LSN 推进、checkpoint 机制的剖析尤为细致,揭示了 InnoDB 如何通过精密的日志设计来平衡写入性能与数据安全性。对于想要理解 MySQL 底层存储引擎如何实现 ACID 特性的开发者而言,这篇分析提供了扎实的原理依据。