现象: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再指向之前的垃圾链头部(头插法)