当前位置:网站首页>理解MySQL的MVCC同一个事务第一次快照读和第二次快照读——笔记
理解MySQL的MVCC同一个事务第一次快照读和第二次快照读——笔记
2022-04-22 08:50:00 【寒枝不栖sx】
我们都知道
- 在 RC 隔离级别下,是每个快照读都会生成并获取最新的 Read View;
- 而在 RR 隔离级别下,则是同一个事务中的第一个快照读才会创建 Read View, 之后的快照读获取的都是同一个 Read View。
也就是图中第一次和第二次用的是同一个 Read View

但是第二次的Read View 里DB_TRX_ID(最新修改数据事务id)会变化 ,而活跃事务列表却不会变

获取最新DB_TRX_ID(最新修改数据事务id) 根据以下规则比较
- 首先比较 DB_TRX_ID < up_limit_id , 如果小于,则当前事务能看到 DB_TRX_ID
所在的记录,如果大于等于进入下一个判断 - 接下来判断 DB_TRX_ID >= low_limit_id , 如果大于等于则代表 DB_TRX_ID 所在的记录在 Read
View 生成后才出现的,那对当前事务肯定不可见,如果小于则进入下一个判断 - 判断 DB_TRX_ID 是否在活跃事务之中,trx_list.contains (DB_TRX_ID),如果在,则代表我 Read
View 生成时刻,你这个事务还在活跃,还没有 Commit,你修改的数据,我当前事务也是看不见的;如果不在,则说明,你这个事务在
Read View 生成之前就已经 Commit 了,你修改的结果,我当前事务是能看见的
=================================================
一开始 DB_TRX_ID 为0 满足规则 ,因而可以看到事务0修改的数据
但是第二次快照读,DB_TRX_ID更新为4(因为事务4修改数据了)不满足规则,所以看不到事务4修改的数据,因而读取的还是第一次的数据。
(RR解决幻读,select * from 表 for update; 加锁,)
版权声明
本文为[寒枝不栖sx]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_45914437/article/details/124326760
边栏推荐
- LeetCode 283. 移动零(简单、数组)day12
- EventBridge 集成云服务实践
- Construire manuellement le tissu hyperledger V2. X réseau de production (IV) Création de canaux, cycle de vie des codes de chaîne
- Wonderful review | the sixth issue of "source" - open source economy and industrial investment
- hyperscan --- 2 编译
- CMake基础知识二之实例单个文件,多个文件,动静态库及使用
- How to build an observable system that can "evolve continuously"| QCon
- L2-004 搜索树判断
- Leetcode0396. Rotation function (medium, iteration)
- Flink流处理引擎系统学习(二)
猜你喜欢
随机推荐
Palindrome linked list (copy linked list to array, speed pointer + reverse linked list)
六款很6的电脑驱动管理器:驱动升级用什么软件好 | 国外最好的电脑驱动管理软件推荐
MySQL uses the source command to import SQL. There is an error. I think it should be a coding problem. I don't know how to solve it
详解JS原型与原型链
pycharm
【系统分析师之路】2020年下系统分析师案例分析真题
Flink流处理引擎系统学习(一)
精彩回顾|「源」来如此 第六期 - 开源经济与产业投资
数值重映射方法(Remap)
用栈实现队列(双栈,输入栈、输出栈)
聊聊限流
网络抖动工具clumsy
手動搭建hyperledger fabric v2.x 生產網絡(四)創建通道,鏈碼的生命周期
如何构建一个可“持续演进”的可观测体系?| QCon
L2-004 搜索树判断
EventBridge 集成云服务实践
Numpy notes (vstack, random.permutation, empty_like, empty, diff, random.choice, random.random, ISIN)
玩转Kubernetes—基础概念篇
MyCms 自媒体 CMS 系统 v3.2.2,广告插件优化
There is no product yet. Musk's "boring company" is valued at $5.7 billion









