当前位置:网站首页>MVCC(多版本并发控制)
MVCC(多版本并发控制)
2022-04-23 06:23:00 【cqwoniu】
1、介绍
MVCC,多版本并发控制,解决的问题:判断当前事务对某行记录是否可见(能否读取到刚刚修改的最新的结果值),这里有个可见性算法,在介绍算法之前,我们先补充两个概念和MVCC的底层原理。
两个概念:
- 当前读:读取的是数据的最新版本,总是读到最新数据,如以下几种的 sql语句:
a、select……lock in share mode
b、select……for uodate
c、update……
d、delete……
e、insert…… - 快照读:读取的是历史版本的记录,sql语句如select……
底层原理:
MVCC包括三部分:
-
第一部分是隐藏字段,表中每一行记录都会有几个用户不可见的隐藏字段,
- DB_TRX_ID:创建或者最后一次修改该记录的事务的id;
- DB_ROW_ID :隐藏主键(如果没有设置主键,且表中没有找到唯一不 为空且为整数型的字段时生成
- DB_ROW_PTR:回滚指针,指向记录的上一个版本
-
第二部分
- undolog:回滚日志,在事务的修改记录之前,会把该记录的原值先保存起来再做修改,以便修改过程中出错能够恢复原值或者其他的事务读取。当不同的事务对一条记录修改的时候,会导致该记录的undolog形成一个线表,也就是链表,链表的链首是最新记录,而链尾是最早的历史记录。
-
第三部分
- readview :事务在进行快照读的时候产生的读视图,它也有三个字段:
1. trx_list:系统活跃的事务id
2. up_limit_id: 列表中事务最小的id
3. low_limit_id:系统尚未分配的下一个事务的id
- readview :事务在进行快照读的时候产生的读视图,它也有三个字段:
接下来,我们介绍可见性算法规则:
- 首先比较DB_TRX_ID<UP_LIMIT_ID,如果小于,则当前事务能看到DBTRX_ID所在的记录;如果大于等于,则进入下一个判断
- 接下来判断DB_TRX_ID>=LOW_LIMIT_ID,如果大于等于,则代表DB_TRX_ID所在的记录在READ_VIEW生成后才出现的,那么对于事务肯定不可见;如果小于,则进入下一步判断
- 判断DB_TRX_ID是否在活跃事务中,如果在,咋代表在READ_VIEW生成时刻,这个事务还是在活跃状态,还没有commit修改的数据,当前事务也是看不到,如果不在,则说明这个事务在 READ_VIEW生成之前就已经开始commit,那么修改的结果就是可见的。
版权声明
本文为[cqwoniu]所创,转载请带上原文链接,感谢
https://blog.csdn.net/cqwoniu/article/details/124177483
边栏推荐
- remote: Support for password authentication was removed on August 13, 2021.
- “泉”力以赴·同“州”共济|北峰人一直在行动
- [8] Assertion failed: dims. nbDims == 4 || dims. nbDims == 5
- SDC intelligent communication patrol management system of Nanfang investment building
- 华为云MVP邮件
- 获取字符格式的当前时间
- 南方投资大厦SDC智能通信巡更管理系统
- ES6之箭头函数细谈
- 可视化常见问题解决方案(七)画图刻度设置解决方案
- 记录一个查询兼容性的网站,String.replaceAll()兼容性报错
猜你喜欢
随机推荐
Int8 quantification and inference of onnx model using TRT
PyTorch 20. Pytorch tips (continuously updated)
嵌入式相关面经(一)
关于'enum'枚举类型以及结构体的问题。
go语言数组操作
启动mqbroker.cmd失败解决方法
字节数仓实习生面试sql题
colab
通用型冒泡、选择、插入、希尔、快速排序的代码实现
海南凤凰机场智能通信解决方案
anaconda3安装
PyTorch 11. Regularization
可视化之路(十)分割画布函数详解
广西电网|应急空天一体化通信系统方案
LATEX使用
DMR system solution of Kaiyuan MINGTING hotel of Fengqiao University
van-uploader上传图片实现过程、使用原生input实现上传图片
ESP32学习-向工程项目添加文件夹
quill-editor图片缩放、在一个页面使用多个富文本框、quill-editor上传图片地址为服务器地址
Emergency communication system for flood control and disaster relief









