当前位置: 首页 > news >正文

MVCC简述

MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种“用空间换时间”的并发策略:同一行数据在数据库里保留多个版本,让读事务与写事务互不阻塞,从而在高并发场景下既能保证隔离性,又能获得接近无锁的读性能。

1.核心思想

写操作不覆盖旧数据,而是生成新版本;
读操作根据事务开始时的快照,只访问对其可见的版本;
读写双方不使用同一把锁,实现“读不阻塞写,写不阻塞读”。

2.事务隔离级别

1.读未提交(RU):不使用MVCC,直接读最新版,可以读到其他事务未提交的数据。可能会造成脏读
2.读已提交(RC):每次select都新建Read View,只能读到其他事务提交的数据。解决脏读,但可能会造成同一个事务读取到的数据不同。
3.可重复读(RR):MYSQL默认的事务隔离级别,事务在第一次select时生成,之后复用,同一个事务内每次读取到的数据相同,解决脏读、不可重复读。
4.串行化(SERIALIZABLE):MVCC失效,退化为加读锁,事务串行执行,完全隔离。性能最低,但能保证最强一致性。

3.实现原理

隐藏字段:1.DB_ROW_ID:标记表中的每一行数据。2.DB_TRX_ID:标记版本是谁产生的。3.DB_ROLL_PTR:标记上一个版本在哪。4.DELETED_BIT:标记是否已删除。
undo log:存放旧版本数据,用于回滚与快照读。
新纪录会指向旧纪录形成链表,链头是最新版本,链尾时最旧版本。
Read View:事务启动时生成的快照,决定当前事务能看到哪些版本。
MVCC在InnoDB中的实现用一句话来总结就是用隐藏字段+undo log版本链+Read View快照实现读不阻塞写,写不阻塞读的非锁定一致性读。
http://www.jsqmd.com/news/332386/

相关文章:

  • 【LLM理论学习】稀疏特征 vs 稠密 embedding
  • springboot安卓理发店预约系统app 开题报告
  • 2026年河南营销策划公司推荐:技术整合能力排名,解决数字化转型与AI布局落地痛点
  • 2026年中山大众搬屋口碑排名,红木家具搬运经验足
  • Chrome浏览器一夜变天!AI智能体接管网页,自动完成任务的时代来了
  • 2026年河南营销策划公司专项测评及排名报告:权威选型指引分析
  • 免费离线音乐生成!Suno AI最强开源替代来了,N卡/A卡通杀,本地部署+ComfyUI!
  • 总结深圳不错的彩色打印机租赁公司,哪家性价比更高
  • 2026年四川灌溉管生产厂家推荐排行榜:行业精选与深度解析
  • 合肥研究生留学机构前十有哪些?零差评机构详细推荐
  • 济南硕士留学机构排名揭晓,性价比高机构值得关注
  • 聊聊环氧云铁中间防腐漆价格,四川地区多少钱能买到?
  • 【瑞芯微平台实时Linux方案系列】第十八篇 - 瑞芯微平台实时Linux安全防护基础方案
  • idea 中处理文件中文乱码问题以及打包路径中文问题
  • 【瑞芯微平台实时Linux方案系列】第十九篇 - 瑞芯微平台实时Linux高精度时间同步方案
  • 揭秘长沙研究生留学机构十强,零差评背后的成功之道
  • 学术降重的“时空隧道”:书匠策AI如何用语义技术改写查重规则
  • 2026年陕西西安劳务派遣公司哪家好?深度解析西安益工保人力资源有限公司的差异化优势
  • 【瑞芯微平台实时Linux方案系列】第十六篇 - 瑞芯微平台实时Linux系统备份与升级方案
  • FastAPI部署中间件实战:从CORS到自定义,让你的API更健壮
  • 学术“反侦察”指南:书匠策AI查重功能如何让你的论文“隐身”于检测系统
  • 郑州留学机构十强盘点,申请成功率高优选指南
  • 学术降重新革命:书匠策AI如何用“语义显微镜”破解查重困局——让你的论文从“复制粘贴”到“原创独创”的智能蜕变
  • 2026年钉钉服务商联系电话推荐:高效对接服务商指南
  • 【瑞芯微平台实时Linux方案系列】第十七篇 - 瑞芯微平台边缘AI与实时控制协同方案
  • 【瑞芯微平台实时Linux方案系列】第十四篇 - 瑞芯微平台实时Linux定时器高精度控制
  • 2026 边缘计算公司推荐:五大领军者引领算力服务新纪元
  • 论文查重的“AI侦探”:书匠策AI如何用黑科技破解学术雷区
  • 2026年滁州装修性价比之选:五大服务商深度测评与收费解析
  • 【瑞芯微平台实时Linux方案系列】第十五篇 - 瑞芯微平台实时与非实时任务协同优化