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

【MySQL】Read view存储的机制,记录可见分析

read view核心组成

1.1 事务id相关

  • creator_trx_id: 创建该read view的事务id

每开启一个事务都会生成一个 ReadView,而 creator_trx_id 就是这个开启的事务的 id。

  • m_ids: 创建read view时系统的活跃事务(未提交的事务)id集合

当前有哪些事务正在执行且还没有提交,这些事务的id就存在这里

  • min_trx_id: 创建read view时系统中最早的活跃事务id

指的是创建的活跃事务id集合里最小的事务id,即最早加入的活跃事务id

  • max_trx_id: 创建read view时系统将分配给下一个事务的id

指的是下一个要生成的事务id,下一个要生成的肯定比所有id都要大

1.2 版本链指针

  • 指向当前数据行的版本链,用于遍历不同版本数据

read view工作原理

1.1 可见性判断

  • 行的事务id < 最小的活跃事务集合id:该版本已经提交,可见。
  • 行的事务id > 最大的活跃事务集合id:该版本由将来事务创建,不可见。
  • 最小的活跃事务集合id <= 行事务id < 最大的活跃事务集合id:
    • 如果行事务id在活跃事务id集合中:事务还没有提交,不可见。
    • 如果行事务id已经不在活跃事务id集合中:事务已经提交,可见。
  • 如果行事务id = 创建时生成的事务id:证明时当前事务对自己的修改,可见。

总结:当事务id在活跃事务id集合,或者大于活跃事务id集合中最大的活跃事务id时,这个版本不可见。


https://github.com/0voice

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

相关文章:

  • *数字信号基础
  • Nginx在微服务架构项目(Spring Cloud)中的强大作用
  • 【智驾中的大模型 -3】VLA 在自动驾驶中的应用
  • 运维侠职场日记9:用DeepSeek三天通关详解自动化操作pdf批量提取PDF文字将PDF转Word文档(附上脚本代码)
  • SpringBoot实战3
  • jupyter切换存储路径
  • FFmpeg:M3U8的AES加密
  • Mac-VScode-C++环境配置
  • 如何在 Go 中创建和部署 AWS Lambda 函数
  • 【linux基本工具的使用 yum vim gdb 以及makefile自动化构建项目】
  • 学习笔记十九——Rust多态
  • MFC文件-写MP4
  • Python打包程序为exe文件(py2exe)
  • AES (高级加密标准)
  • (mac)Grafana监控系统之监控Linux的Redis
  • 基于Matlab求解矩阵电容等效容值
  • 解决vscode找不到Python自定义模块,报错No module named ‘xxx‘
  • MySQL数据库(基础篇)
  • Gitlab runner 安装和注册
  • 解决模拟器打开小红书设备异常问题
  • n8n 中文系列教程_04.半开放节点深度解析:Code与HTTP Request高阶用法指南
  • 2025年渗透测试面试题总结-拷打题库08(题目+回答)
  • Docker Compose 外部网络(`external: true`)与内部网络的区别
  • 【AI图像创作变现】02工具推荐与差异化对比
  • 用于手部康复设备的TinyML语音分类嵌入式人工智能模块
  • 大模型day4 - LangChain
  • Jsp技术入门指南【九】详细讲解JSTL
  • Linux 文件系统目录结构详解
  • UID和GID的区别
  • optool为macho文件增加动态库