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
相关推荐
实泽有之,无泽虚之20 分钟前
ORA-12518:Oracle 监听程序无法分发客户端连接原因及解决方法
数据库·oracle
Elastic 中国社区官方博客22 分钟前
组合 OpenTelemetry 参考架构
大数据·数据库·elasticsearch·搜索引擎·架构
zs宝来了24 分钟前
MySQL 执行计划深度解析:EXPLAIN 执行计划全字段解读
mysql·explain·执行计划·查询优化
Z_Wonderful25 分钟前
在 **Next.js** 中使用 `mysql2` 连接 MySQL 数据库并查询 `xxx` 表的数据
android·数据库
FirstFrost --sy34 分钟前
MySql 内外连接
android·数据库·mysql
watersink42 分钟前
第16章 案例特训专题【数据库篇】
数据库
爬山算法42 分钟前
MongoDB(78)什么是MongoDB的事务?
数据库·mongodb
卤炖阑尾炎1 小时前
MySQL 主从复制与读写分离:从原理到实战全解析
mysql·adb
ego.iblacat1 小时前
MySQL 高可用
数据库·mysql·adb
阿里小阿希1 小时前
PostgreSQL 判断大导入是否正在执行 pg_stat_activity
数据库·postgresql