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

在MySQL中,undo log日志的作用主要有两个:

我们在进行数据更新操作的时候,不仅会记录redo log,还会记录undo log,如果因为某些原因导致事务回滚,那么这个时候MySQL就要执行回滚(rollback)操作,利用undo log将数据恢复到事务开始之前的状态。

如我们执行下面一条删除语句:


delete from user where id = 1;

那么此时undo log会记录一条对应的insert 语句【反向操作的语句】,以保证在事务回滚时,将数据还原回去。

再比如我们执行一条update语句:


update user set name = "李四" where id = 1;   ---修改之前name=张三

此时 undo log 会记录一条相反的update语句,如下:


update user set name = "张三" where id = 1;

如果这个修改出现异常,可以使用undo log日志来实现回滚操作,以保证事务的一致性。