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

MVCC详解

目录

undo日志版本链

read view一致性视图

MVCC过程分析

读事务&写事务


  • Multi-Version Concurrency Control多版本并发控制
  • 已提交可重复读隔离级别实现了MVCC机制

undo日志版本链
  • 一行数据修改MySQL保留修改前数据undo日志)
  • 使用trx_idroll_pointer这些undo日志串联形成一个历史记录版本

read view一致性视图
  • 在可重复读隔离级别下,开启事务后,执行任何查询sql是会生成当前事务的一致性视图视图事务结束之前永远不会发生变化
  • 在读已提交隔离级别下每次执行查询sql都会重新生成一致性视图
  • 一致性视图执行查询所有为提交事务id数组以及已创建最大事务id(max_id)组成
  • 提交事务id数组存在事务idmin_id)
  • 事务任务sql查询结果需要使用查询记录提交trx_id一致性视图作对比决定记录是否当前事务可见

  • 据图对比规则如下
    • 记录trx_id<min_id时,说明在生成一致性视图事务已经提交数据可见
    • 记录trx_id>max_id说明生成一致性视图事务还未开始数据不可见
    • 记录的min_id<=trx_id<=max_idtrx_id一致性视图说明生成一致性视图事务已开始但是未提交数据不可见
    • 记录的min_id<=trx_id<=max_idtrx_id不在一致性视图说明在生成一致性视图时,该事务已提交数据可见

MVCC过程分析

操作

事务A

事务B

事务C

设置隔离级别开启事务

事务A执行查询

此时生成一致性视图

[事务A] 事务A

事务B修改数据提交

事务A再次查询

根据一致性视图[事务A] 事务A比对事务B修改数据不可见还是读取之前数据

事务C执行查询

此时生成一致性视图

[事务A,事务C] 事务C

对比一致性视图事务B修改数据可见

事务A修改数据提交

事务C再次查询

根据一致性视图[事务A,事务C] 事务C

对比事务A修改数据不可见

读事务&写事务

开启事务mysql执行select 真正开启事物生辰一致性视图

mysql执行updateselect ... for update,insertdelete真正开启写事物

http://www.xdnf.cn/news/1565.html

相关文章:

  • 【前端】【业务场景】【面试】在前端开发中,如何实现文件的上传与下载功能,并且处理可能出现的错误情况?
  • 机械手排列定位设备 PLC梯形图流程
  • 乐聚机器人与地瓜机器人达成战略合作,联合发布Aelos Embodied具身智能
  • UE5 Assimp 自用
  • ragflow部署以及api调用整理
  • java—13 RocketMQ
  • 拥抱健康生活,解锁养生之道
  • 某城乡老旧房屋试点自动化监测服务项目
  • 关于边缘计算盒子的外部接口保护
  • Python 的 datetime 模块使用详解
  • Redisson实战:分布式系统中的五大典型应用场景
  • 来访登记二维码生成
  • 数据一致性问题剖析与实践(二)——单机事务的一致性问题
  • MySQL的日志--Redo Log【学习笔记】
  • OpenCV 图形API(60)颜色空间转换-----将图像从 YUV 色彩空间转换为 RGB 色彩空间函数YUV2RGB()
  • PyQt6实例_A股财报数据维护工具_使用
  • 【TeamFlow】4.3.4 长度单位
  • 【大数据技术-联邦集群RBF】DFSRouter日志一直打印修改Membership为EXPIRED状态的日志分析
  • UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • Sql文件处理SQLDumpSplitter
  • mojoPortal 接口imagehandler任意文件读取漏洞(CVE-2025-28367)
  • 【Java面试笔记:基础】9.对比Hashtable、HashMap、TreeMap有什么不同?
  • OpenCV 图形API(55)颜色空间转换-----将图像从 RGB 色彩空间转换为 I420 格式函数RGB2I420()
  • 计算机网络笔记(七)——1.7计算机网络体系结构
  • Linux系统学习----概述与目录结构
  • JSON实现动态按钮管理的Python应用
  • Java大师成长计划之第1天:Java编程基础入门
  • docker在windows下wsl存储路径的变更与数据迁移
  • 18487.1-2015-解读笔记之四-交流充电之流程分析
  • 大数据人工智能概述