现象:undo log(撤销日志)。事务执行中断(违背原子性,不可执行)时,需要回滚数据
解决:记录下 增删改对应的日志
事务id
每条记录上都有一个隐藏列trx_id,表示当前记录的所属事务

增删改对应的undo日志结构


垃圾链:被删除的记录根据next_record形成的链表,page—>page header—>PAGE_FREE属性—>垃圾链头部
删除记录的两个阶段:
1、delete mark:只将该记录的deleted_flag设置为1
2、purge:删除语句的事务提交之后,断开正常记录链表,PAGE_FREE指向该记录,该记录的next_recoed再指向之前的垃圾链头部(头插法)



事务中断与undo日志管理:解决数据一致性问题,
本文讨论了当事务执行因违反原子性导致中断时,如何通过undo日志记录操作并进行数据回滚。重点介绍了trx_id在事务跟踪中的作用,以及垃圾链在处理删除记录时的两个阶段:deletemark和purge的过程。
1951

被折叠的 条评论
为什么被折叠?



