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
相关推荐
测试运维日常笔记15 分钟前
Oracle 数据库连接认证方式详解
数据库·oracle
ClouGence1 小时前
PostgreSQL 同步到 Iceberg:开源、私有部署与 SaaS 方案对比
数据库·postgresql·开源
这个DBA有点耶1 小时前
DBA进阶之路:从“修数据库”到“管架构债”
数据库·架构·dba
ACP广源盛139246256731 小时前
WAIC2026 国产超节点算力浪潮下@ACP#IX9104 在算力矩阵中的定位与落地场景
大数据·数据库·人工智能·嵌入式硬件·线性代数·矩阵
珠***格2 小时前
通信链路全打通:西格电力四可装置的 4G/5G + 加密认证技术详解
大数据·数据库·分布式·5g·架构·能源
盗理者2 小时前
AI Agent 技能分享|从零实现 MCP Server,让 Agent 安全读取数据库
数据库·oracle
xqqxqxxq3 小时前
Redis 五大常用数据类型 + 通用命令笔记
数据库·redis·笔记
l1t3 小时前
DeepSeek总结的在 pg_stat_statements 中诊断高基数工作负载
数据库·缓存·postgresql
buyue__3 小时前
Python实现连接MySQL数据库并执行目录下的所有SQL文件,遇到错误时终止执行。
python·mysql
神奇霸王龙3 小时前
Agentic RAG 双硬门屠夫:5 旗舰实测
数据库·人工智能·ai·agent·ai编程·ai写作·rag