https://blog.csdn.net/Weixiaohuai/article/details/117867353

在更新数据之前,MySQL会提前生成undo log日志,当事务提交的时候,并不会立即删除undo log,因为后面可能需要进行回滚操作,要执行回滚(rollback)操作时,从缓存中读取数据。undo log日志的删除是通过通过后台purge线程进行回收处理的。

同样,通过一张图来理解undo log的工作原理。

image.png

如上图:

用 undo log 实现原子性和持久性的事务的简化过程:

假设有 A、B 两个数据,值分别为 1,2。