undo log
2021-08-12 17:08:27 4 举报
mysql 日志
作者其他创作
大纲/内容
写入数据到数据页中
记录删除类型undo log日志(记录了老的回滚指针和事务id,主键列和索引信息)
将数据页中的删除标记复原
记录update类型的undo log
是否提交事务
页分裂
回滚
提交
否
重用刚释放的空间
插入一条数据
End
undo log插入
更新前的空间是否大于更新后
记录一条删除类型的undo log日志
undo log删除
产生一条update类型的undo log
将数据页的记录标记为删除
将被标记删除的数据加入到垃圾链表,删除对应索引中的记录
没有主键,会创建row_id列
将删除数据加入到垃圾链表
是
记录插入类型的undo log日志,会记录主键ID的信息
是否更新主键
插入一条数据的流程
就地更新数据
解析undo log日志,找到主键列删除对应的数据
将记录标记位复原,删除新插入的记录
在数据页中打上删除标记
分配足够大的空间
回滚更新
是否有自增主键ID
undo log更新
有自增主键
当前页是否能存放下
更新前后空间是否一致
0 条评论
回复 删除
下一页