MySQL高级-MVCC-原理分析(RR级别)

文章目录

1、RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView

而RR 是可重复读,在一个事务中,执行两次相同的select语句,查询到的结果是一样的。

  • 那MySQL是如何做到可重复读的呢? 我们简单分析一下就知道了

我们看到,在RR隔离级别下,只是在事务中第一次快照读时生成ReadView,后续都是复用该ReadView,那么既然ReadView都一样, ReadView的版本链匹配规则也一样, 那么最终快照读返回的结果也是一样的。

2、总结

所以呢,MVCC的实现原理就是通过 InnoDB表的隐藏字段UndoLog 版本链ReadView来实现的。
MVCC + 锁,则实现了事务的隔离性
一致性 则是由 redologundolog 保证。

  1. 原子性:undo log
  2. 一致性:undo log + redo log
  3. 隔离性:锁+MVCC
  4. 持久性:redo log
相关推荐
abc123456sdggfd2 分钟前
Layui表单验证失败时如何修改默认弹出的Tips气泡颜色
jvm·数据库·python
Bert.Cai11 分钟前
MySQL TRIM()函数详解
数据库·mysql
2301_8009769316 分钟前
数据库的基本操作后续
java·数据库·sql
SECS/GEM17 分钟前
SECS/GEM如何实现越南现场自定义消息
java·服务器·数据库
weixin_4249993634 分钟前
PHP源码在双硬盘系统如何优化_硬件存储分配建议【指南】
jvm·数据库·python
ECT-OS-JiuHuaShan39 分钟前
渡劫代谢,好事多磨
数据库·人工智能·科技·学习·算法·生活
qq_1898070343 分钟前
json ignore反序列化?_?JSON反序列化时忽略字段的json----标签使用方法.txt
jvm·数据库·python
zhangchaoxies43 分钟前
让水平滚动条始终固定在页面底部,实现跨视口的横向滚动控制
jvm·数据库·python
justjinji1 小时前
如何用组合继承模式实现父类方法复用与子类属性独立
jvm·数据库·python
SelectDB1 小时前
Apache Doris 4.1:面向 AI & Search 的统一数据存储与检索底座
大数据·数据库·数据分析