当前位置:网站首页>绝对最直白的MySQL MVCC机制总结,免费拿走
绝对最直白的MySQL MVCC机制总结,免费拿走
2022-08-02 15:01:00 【InfoQ】
- 在小ySQL InnoDB存储擎下RC(读已提交,RR(可重复读)基于MVCC(多版本并发控制)进行并发事务控制
- MVCC是基于”数据版本”对并发事务进行访问。
举例子引题
UNDO_LOG版本链
undolog就是undolog日志。
TRX_ID 是 此次修改的事务id
DB_ROLL_PTR是指向上一个修改的版本指针
- UNDO LOG版本链不是立即删除,
- MySQL确保版本链数据不再被“引用”后再进行删除。
ReadView是啥
- 快照读就是最普通的Selecti查询SQL语句
- 当前读指代执行下列语句时进行数据读取的方式,如Insert、.Update、Delete、Select...for update、Select...lock in share mode
- mids:当前活跃的事务编号集合
- min_trx_id:最小活跃事务编号
- max_trx_id:预分配事务编号,当前最大事务编号+1
- creator trx id:ReadView创建者的事务编号
RC与ReadView的关系
- RC与ReadView
- 拿第一次的来分析,结合右边的规则和ReadView对版本链进行从上到下比对,选择合适的版本取出对应的值即可。
- 拿第二次select的来分析,结合右边的规则和ReadView对版本链进行从上到下比对,选择合适的版本取出对应的值即可。
RC与ReadView的关系
- 连续多次快照读,ReadView会产生复用,没有幻读问题
- 特例:当两次快照读之间存在当前读,ReadView会重新生成,导致产生幻读
总结
边栏推荐
猜你喜欢
祝蔡徐坤生日快乐!
TCP(传输控制协议)
开篇-开启全新的.NET现代应用开发体验
面试必问的HashCode技术内幕
太帅了!我用炫酷大屏展示爬虫数据!
System delay tasks and scheduled tasks
UnicodeEncodeError: 'gbk' codec can't encode character '\u2022' in position 178: illegal multibyte s
浅析PM2实用入门指南
“绿色低碳+数字孪生“双轮驱动,解码油气管道站升级难点 | 图扑软件
Basic management of system storage -- mounts, partitions, user quotas
随机推荐
统计二进制中1的个数,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
入门关于 switch case 的理解
基于ip的证书
SQL学习笔记——REGEXP运算符
策略路由下发
2022 Security Officer-A Certificate Exam Questions and Mock Exam
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
PAT Class A 1130 Infix Expressions
PAT甲级 1078 哈希
面试了个阿里P7大佬,他让我见识到什么才是“精通高并发与调优”
MySQL的简单运用-where、update、delete、like、union
Traverse Heap PAT Class A 1155 Heap Path
PAT甲级 1130 中缀表达式
【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
Qt | 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent
Qt | 控件之 QComboBox
Reed-Solomon Codes——RS纠错码
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
es6 循环,并终止循环
mysql 索引使用与优化