MySQL 撤销日志与重做日志(Undo Log与Redo Log)相关总结
Undo Log数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。Undo Log产生和销毁Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进行回收处理。在innodb数据文件中包含一种rollback segment回滚段,内部包含1024个undo log segment。Undo Log作用实现事务的原子性Undo Log 是为了实现事务的原子性而出现的产物。事务未提交之前,Undo Log保存了未提交之前的版本数据,Undo Log 中的数据可作为数据旧版本快照供其他并发事务进行快照读。