1.核心原理:
多版本并发控制,每个事务读到不是同一个正在被修改的数据,而是自己对应的历史版本快照,所以多个事务既能同时读又能同时写互不阻塞
2.UnLog:
历史版本通过undolog获取,数据库只存储最新的一条记录,通过undolog反向获取版本信息与最新记录串成一条版本链
3.readview:
会记录哪些事务已被提交,哪些事务未提交,从而决定你是否能看到对应的版本信息,简单总结为:自己提交的可以看,比自己早提交的可以看,未提交的不能看
MVCC如何实现不同隔离级别?
读已提交:每次SELECT都创建新ReadView → 看到最新已提交数据(会造成不可重复读)
可重复读:事务第一次SELECT时创建ReadView并复用 → 整个事务看到同一快照
MVCC原理?????
最新推荐文章于 2025-11-21 16:15:28 发布
772

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



