MySQL: undo log

2025/09/03

实现撤销 (undo) 操作。

关键在于记录一份修改前的记录 (前置镜像)。

保存的是数据的现场。

例如有这样一张表 order

order_id, person_id, amount

如果要更新前 amount=10, 更新后 amount=20

那么 undo log 就会记录这个差异,记录前置镜像 10,记录后置镜像 20.

我问了下 ds 是否可以查看 MySQL 的 undo log 日志,看下前置镜像的保存。 但是它回复说这个是二进制的,我看不了。

“重做” - 向前恢复(重做已提交的操作) “回滚” - 向后撤销(撤销未提交的操作)

redo log 是预写日志的一种。

redo log = 数据库的"操作日志"(WAL 的实现)

bin(binary) log: 二进制日志,归档日志。查询的操作不会记录,会记录变更的操作。 这个日志是主从复制同步的关键日志。