undo log (前面在事务原理那里学过): 回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志

1、当执行insert语句的时候,产生的undo log日志只在回滚时需要,在事务提交之后,undo log日志可被立即删除

2、当执行update、delete语句的时候,产生的undo log日志只在回滚时需要,在快照读时也需要,所以undo log日志不会被立即删除

 

上面的undo log日志是前面学的,这节课学的是下面的undo log版本链

 

undo log版本链 不同事务或相同事务对同一条记录进行修改,会导致该记录的undo log日志文件有多次迭代,这些undo log日志文件就是该记录生成的 一条记录版本链表,链表的头部是最新的旧记录,链表尾部是最早的旧记录。这个undo log多个版本+相连的链路=undo log版本链

 

当我们去查询某条记录的所有历史版本,这个版本链会给我们返回哪个版本呢,涉及到MVCC实现原理的readview,下节课学