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
相关推荐
LaughingZhu8 小时前
Product Hunt 每日热榜 | 2026-01-28
数据库·经验分享·神经网络·搜索引擎·chatgpt
无名修道院8 小时前
AI大模型应用开发-用 MySQL 存储简单数据,用 Python 操作数据库
数据库·python·mysql·ai大模型应用开发
云飞云共享云桌面8 小时前
SolidWorks如何实现多人共享
服务器·前端·数据库·人工智能·3d
Eaxker8 小时前
Java后端学习4:MySQL
后端·mysql
正在走向自律8 小时前
金仓数据库:Oracle迁移背景下的兼容性挑战与迁移成本深度解析
数据库·oracle·国产数据库·电科金仓
AORUO奥偌8 小时前
医用气体报警箱:构筑楼层气体安全的监测前哨
大数据·数据库
醒过来摸鱼8 小时前
redis源码deps目录
数据库·redis·缓存
Huanlis8 小时前
Redis Stream 核心原理与实战指南
数据库·redis·缓存
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.8 小时前
HAProxy四层负载实战:MariaDB高可用方案
数据库·mariadb
好好研究8 小时前
MobaXterm远程连接云服务器(Centos环境)及配置jdk、Tomcat、MySQL环境
java·服务器·mysql·jdk·tomcat·aliyun服务器