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
相关推荐
倔强的石头10621 分钟前
Spring Boot 接入金仓数据库:配置分层、启动自检与常见错误
数据库·spring boot·后端
CryptoPP41 分钟前
韩国股市数据源对接实战:从KOSPI到KOSDAQ的实时行情接入方案
数据库·redis·缓存·金融·区块链
好好沉淀44 分钟前
Spring @Validated和Validation注解 校验机制完全指南
java·数据库·后端
艾莉丝努力练剑2 小时前
【MYSQL】MYSQL学习的一大重点:事务(上)- 原子性与持久性
android·数据库·学习·mysql·面试
曹牧3 小时前
Java:BeanListHandler
java·数据库·oracle
ITenderL5 小时前
MySQL联合索引遇到范围查询
数据库·索引
敲个大西瓜11 小时前
Redis一百道核心面试题
数据库·redis·缓存
無a伟14 小时前
Redis持久化详解:RDB与AOF原理、配置、优缺点
数据库
小罗水14 小时前
附录A 各微服务完整 application.yml 配置汇总
数据库·elasticsearch·微服务
muddjsv15 小时前
SQLite 外键进阶:CASCADE / SET NULL / 级联更新与完整性校验
数据库·sqlite