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
相关推荐
2301_776508721 分钟前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
秦渝兴5 分钟前
用 Docker Compose 一键部署高可用集群(MySQL + Tomcat + Nginx)
运维·mysql·nginx·docker·容器·tomcat
2501_945424806 分钟前
实战:用Python开发一个简单的区块链
jvm·数据库·python
slyybw6 分钟前
MySQL SQL语句
sql·mysql·oracle
jgbazsh8 分钟前
【MySQL】mysqldump使用方法
数据库·mysql·oracle
code_pgf8 分钟前
Jetson 上 OpenClaw + Ollama + llama.cpp 的联动配置模板部署大模型
服务器·数据库·人工智能·llama
查古穆12 分钟前
FastAPI-依赖注入
数据库
q54314708713 分钟前
Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
数据库·redis·缓存
吾诺18 分钟前
如何在Linux中找到MySQL的安装目录
linux·运维·mysql
2301_7765087223 分钟前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python