MySQL MVCC:通过 ReadView与 undolog版本链 分析读提交RC和可重复读RR的原理 - 教程

news/2025/10/29 17:39:20/文章来源:https://www.cnblogs.com/gccbuaa/p/19175024

ReadView

ReadView(读视图)是 InnoDB 存储引擎在达成 MVCC时获取数据的依据,核心用于一致性读时判断数据版本的可见性。

ReadView 本质上是一个快照,记录了当前系统中活跃事务的信息,帮助判断某个数据版本是否对当前事务可见。

具备了四个核心字段:

  • m_ids:当前系统中活跃的事务 ID 列表
  • min_trx_id:活跃事务中的最小事务 ID
  • max_trx_id:平台尚未分配的下一个事务 ID,即预分配事务id,当前最大事务ID + 1
  • creator_trx_id:创建该 ReadView 的事务 ID

版本链数据访问规则

trx_id代表当前事务ID

  • trx_id == creator_trx_id,可以访问该版本,说明数据是被当前事务更改的
  • trx_id < min_trx_id,可以访问该版本,说明数据已经提交了
  • trx_id > max_trx_id通过,不能够访问该版本。事务实在ReadView生成后才开启的
  • min_trx_id <= trx_id <= max_trx_id通过,如果trx_id不存在于m_ids,说明能够访问该版本,说明资料已经提交。反正则说明数据没提交

由图可见,当事务5进行快照读时,会查询当前活跃的事务。

  • 事务2已经提交因此不算活跃事务,事务3、4、5都还没有提交,因此被统计入m_ids
  • 最小的活跃事务的id就是事务3
  • 预分配事务id就是最大事务id 事务5的id + 1
  • ReadView的创造者也是事务5

由上就生成了一个完整的ReadView

undolog版本链

undolog为回滚日志,在增删改管理的时候产生,用来准备资料回滚

  • insert时,undolog只会在回滚时得,事务提交后可被立即删除
  • update、delete还会再快照读时需要,不会被立即删除

依旧从上图分析:

  • 事务2修改 id为30的记录,将age从30改为3,生成undolog日志,并将回滚指针指向最初的创建事物的undolog
  • 事务3将 id为30 的记录 name 修改为A3,生成undolog日志,并将回滚指针指向事务2的undolog
  • 事务4将 id为30 的记录 age修改为10,生成undolog日志,并将回滚指针指向事务3的undolog

由此生成了undolog版本链

READ COMMITTED读提交

在事务中每发生一次快照读都会生成一个ReadView

在RC机制下,事务5每次查询都会生成一个ReadView,那么该如何找到可以访问材料的快照呢?上文讲解的undolog版本链给出了答案。

系统会根据版本链数据访问规则,从undolog版本链的头节点依次向后判断,直到找到第一个符合访问规则的undolog,然后将找到的版本的记录的数据返回,这就是我们要读取数据的快照。

不同的。就是由上图可看,两次查询生成了两次不一样的ReadView,那么他们所找到的数据版本也可能会不同,第一次查询时只有事务2的数据可以被访问,第二次查询时事务3的信息也可以被访问了,那么查询返回的数据的版本就是不一致的,数据也

因此一个事务中读取同一个数据可能会返回不同的结果,这就是不可重复读。

REPEATABLE READ可重复读

仅在事务开始第一次执行快照读时生成一个ReadView,后续复用这个ReadView

一致的,他们找到的就是由图可见,两次查询操作对应的ReadView素材版本也就是一样的,查询返回的结果就是相同的。

一个事务中读取同一个数据一定会返回相同的结果,这就是可重复读。

总结

ReadView 的创建时机决定了隔离级别行为:

  • RC:语句级快照,每次查询都刷新视图。不可重复读。
  • RR:事务级快照,整个事务复用同一视图。可重复读。

但这两个事务隔离级别都没能结果幻读的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/950114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

upstream timed out (110: Connection timed out) while reading response header from upstream

在使用 Nginx 时,错误信息 upstream timed out (110: Connection timed out) while reading response header from upstream 是一个常见的超时问题。这一错误意味着 Nginx 作为反向代理,在等待上游服务器(如 Tomcat…

Halcon算法——Hough变换

当然可以。以下是对你提供的博客《Hough变换基础》的学习笔记总结:🧭 一、Hough变换概述 Hough变换(霍夫变换)是一种用于检测几何形状(如直线、圆等)的图像处理方法。 其核心思想是:将图像空间中的点映射到参数…

2025 年不锈钢管源头厂家最新推荐排行榜:覆盖焊管、花纹管、菱形管、工业管等品类,结合协会测评数据精选优质品牌

引言 为解决采购方在不锈钢管市场面临的选品难题,本次 2025 年不锈钢管源头厂家推荐榜,由中国金属结构协会不锈钢分会联合行业权威检测机构共同测评编制。测评过程严格遵循 “三维九项” 评估体系,从产品维度(材质…

2025年挖泥船生产商权威推荐榜单:清淤船/挖沙船/绞吸船源头厂家精选

在航道疏浚、港口建设、水域环保等领域,挖泥船作为核心施工装备,其性能优劣直接关系到工程效率与运营成本。 据QYResearch调研统计,2031年全球自航式挖泥船市场销售额预计将达亿元规模,年复合增长率保持稳定增长。…

99%的企业都不知道GEO搜索优化怎么做,讯灵AI来解答

现在AI月活超5亿,用户消费决策早从“刷内容”转向“问AI”,搜门店、查品牌都靠它 —— 推荐里没有你,用户根本不会看。踩准AI搜索风口,才能走得更稳、看得更远。99%的企业还没意识到,GEO搜索优化能提前布局。当你…

开了 8 年母婴店,靠微擎守住了 20000 会员的信任,再也不怕数据泄露

会员信息被泄露,一天接到 5 个诈骗电话,还有 3 个老客户因为担心隐私安全退了储值卡!” 想起 3 年前的那场 “数据危机”,我至今心有余悸。作为一家在本地开了 8 年的母婴店,我们靠着口碑积累了 20000 多名会员,…

建筑全场景安全监测 “无死角”!思通数科 AI 卫士多模态大模型覆盖文明施工、基坑与消防

在建筑施工安全管理中,传统监测模式常因 “场景分散、隐患隐蔽” 陷入 “顾此失彼” 的困境:文明施工中,围挡高度不达标、垃圾清运不及时、施工道路未硬化等问题,靠人工巡检易漏检;基坑施工时,支护结构裂缝、周边…

实况足球8下载安装教程(图文步骤 + 全流程配置指南)

实况足球8下载安装教程(含图文步骤),详细介绍实况足球8下载、安装、配置、补丁、优化与常见问题解决方法,兼容Win7/Win10/Win11系统,帮助玩家重回经典绿茵场。实况足球8下载安装教程(图文步骤 + 全流程配置指南)…

SQL优化必备脚本:Oracle获取绑定变量的字面SQL文本

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。今天分享一个…

20251029周三日记

20251029周三日记昨天日记忘了发了,刚把周二日记提交哈哈 昨天晚上明确了要生成宫格图,而非3d assets。今天先把同门发的超多视点看看,请教一下。 今日: 1.早上起床洗漱完直接去上课了,这课简直是浪费人生中的一早…

基于 Word 模板占位符的动态文档生成实践(源码+保姆版)

一、基于 Word 模板占位符的动态文档生成技术💡 作者:古渡蓝按 个人微信公众号:微信公众号(深入浅出谈java) 感觉本篇对你有帮助可以关注一下,会不定期更新知识和面试资料、技巧!!!📝 简介 在企业业务系统…

坤驰科技荣膺国家级专精特新“小巨人”企业

近日,北京市经济和信息化委员会公布了北京市入选国家级专精特新 “小巨人” 企业名单 ,北京坤驰科技有限公司(以下简称“坤驰科技”)凭借在高端信号采集与处理领域的突出创新力和产业化能力,顺利通过遴选,荣膺国…

读书笔记:Oracle组合分区:像俄罗斯套娃一样管理数据

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学…

自动对焦技术:TGV视觉检测方案中的关键

玻璃通孔(TGV)工艺在半导体封装中应用广泛,但在检测过程中面临诸多挑战, 主要体现在以下几点: 1、精度要求高 TGV技术的精度要求极高,通常是微米级。为了确保电气性能和信号传输的稳定性,任何微小的形变或尺寸偏…

红外热像仪 热成像相机 即插即用多场景适配

红外热像仪 热成像相机 即插即用多场景适配Red Eye Camera 是一款基于红外阵列高精度温度传感器与先进软件算法的非接触式热成像仪,可实时对视场范围内物体进行清晰红外成像。该设备具备512384像素的高分辨率,温度灵…

详细介绍:K8s学习笔记(十一) service

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vn.py的日志问题

vn.py的日志问题使用新版 vn.py 调试时, 发现没有日志, 然后写了下面一段代码跟踪:from vnpy.trader.setting import SETTINGS from vnpy.event import EventEngine from vnpy.trader.engine import MainEngine fro…

Oracle故障处理:create table 引起select语句hang住出现library cache lock事件

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。Oracle故障处…

OSI中七层模型

OSI中七层模型OSI中七层模型 1.物理层: 在物理媒介上传输原始的比特流。它定义了电气,机械,过程和功能规范,以激活。维持和断开物理链路。 关心的问题:电压大小,引脚数量,电缆类型,传输速率,信号同步等 协议/…

2025 年西安苹果手机维修公司最新推荐榜,聚焦技术实力与用户口碑深度解析

引言 随着西安苹果设备保有量年增 18%,维修需求同步攀升,但行业仍存在配件掺假率 12%、隐性收费占比 23% 等乱象。为破解选择难题,本次推荐榜联合该委员会开展专项测评,采用 “三维九维度” 评估体系:技术维度涵盖…