mvcc理解

多版本并发控制
也是辅助用时间戳的
在这里插入图片描述
mvcc所有数据库都实现了
新老版本如何存储
针对每一个tuple,用指针建一个版本链表。
存储版本的三个方法
1 追加
在这里插入图片描述
简单追加有两种思路
新版本放在末尾或者开头
新版本放在末尾的话,索引上来查的是最老版本,追加的时候维护开销大
2 时间旅行
在这里插入图片描述

3 存储增量
是时间旅行的改进版
只存储增量的字段,节约历史版本的大小,但想查历史版本,就得回去一步步找
在这里插入图片描述
mysql用的第三个

垃圾回收问题
不能无限回收历史版本
回收宗旨:1活着的事务都没有用到的版本 2 回滚版本

如何寻找历史版本
在这里插入图片描述
行记录的垃圾回收
页需要做一个标记,当有更新时,才会扫描,后台专用线程
在这里插入图片描述
合作清理

事务级别垃圾清理
事务自己记下来,到时候一起清

索引管理
主键索引都是指向版本链表的头(第一个)
辅助索引
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值