undo log是用来存储修改之前的旧数据,它的作用主要是两个
- 用于事物的回滚
- 用于MVCC里面的读视图
undo log的类型也有两种 insert undo log 、 update undo log
- insert undo log:数据库在插入数据的时候产生,只有在当前事物回滚的时候才有用,所以在当前事物结束的时候它就没用了,就会被删除。
- update undo log:数据库在更新、删除的时候产生,除了当前事物会使用,在快照读的时候也会使用,所以不能随便删除,只有在快照读或事务回滚不涉及该日志时,对应的日志才会被purge线程统一清除