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
相关推荐
PD我是你的真爱粉6 小时前
MySQL基础-DQL语句与多表查询
数据库·mysql
C#程序员一枚6 小时前
SqlServer如何创建全文索引
数据库·sqlserver
DBA小马哥6 小时前
时序数据库迁移实践指南:面向业务连续性的技术演进路径
数据库·时序数据库·dba
生命因何探索7 小时前
Redis-持久化
数据库·redis·缓存
harrain7 小时前
windows下载安装MySQL9.5的缺少Redistributable问题解决
windows·mysql
yjb.gz7 小时前
Shell实现数据库巡检
数据库
福大大架构师每日一题7 小时前
redis 8.4.1 正式发布:安全升级、性能强化与多模块重大修复详解
数据库·redis·安全
魑-魅-魍-魉8 小时前
金仓数据库(KingbaseES)Windows 安装避坑指南:从 Connection Refused 到服务启动的完整实战记录
数据库·金仓
chlk1239 小时前
聊聊索引:为何 B + 树能撑起数据库的半壁江山?
数据库·mysql
宁酱醇9 小时前
ORACLE_建表+增改查+删
数据库·oracle