【MySQL】一篇讲透MySQL的MVCC机制!

MVCC(Multi-Version Concurrency Control,多版本并发控制)是数据库管理系统中用于处理并发访问的一种机制 ,尤其在 InnoDB 等存储引擎中被广泛使用。

它通过保存数据的多个版本 ,让不同事务在并发读写时能够互不干扰,既保证了事务隔离性,又减少了锁竞争,提升了数据库的并发性能。

三个核心组件:隐藏字段、undolog版本链、Read View

核心原理

每个事务读到的 不是正在被修改的数据,而是自己对应的历史版本快照 ,所以多个事务既能同时读,又能同时写,读写互不阻塞,保证了数据库高并发。

关键机制

Undo Log版本链 维护了数据之前的版本。

那么当前事务到底能看到版本链的哪一条数据呢?

就要靠ReadView

会记下哪个数据已经提交,哪些还活跃,然后按照一套规则判断这个版本能不能看。

隔离级别下的区别

RC读已提交 :每次Select都会生成一个新的ReadView ,所以前后两次Select结果可能不一样,造成不可重复读问题。
RR可重复读只在第一次Select时生成一个ReadView ,后面一直复用这个ReadView,所以每次读到的数据都是一样的,这就是可重复读。

总结:

MVCC是快照读
Undo Log是历史版本的支撑
ReadView决定谁能看见哪个版本的数据

相关推荐
2601_962218616 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
李高钢7 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
toooooop87 小时前
MySQL source导入实战:踩坑记,phpMyAdmin 502、source导入巨慢问题解决
mysql
yuzhiboyouye8 小时前
那xml对应的sql语法,列举一下
xml·数据库·sql
. . . . .9 小时前
乐观锁 vs 悲观锁
数据库·sql
Leo.yuan9 小时前
2026年多数据库实时同步的四种架构方案及工具推荐
数据库·架构
hasty9 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告
数据库·mysql·安全
梦想平凡10 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
凤山老林11 小时前
Spring Boot 整合 Flowable 的企业级落地指南
数据库·spring boot·后端·flowable·工作流
企业数字化笔记11 小时前
AI写的系统出现504怎么办?接口超时和数据库慢查询排查
数据库·后端