为什么mvcc中?m_ids 列表并不等同于 min_trx_id 和 max_trx_id 之间的所有事务 ID

首先我们要明确

m_ids

表示创建 ReadView 时,系统中所有活跃(未提交)事务的事务 ID 列表。

仅包含当前未提交的事务,与事务 ID 的数值范围无关。

min_trx_id

是 m_ids 中的最小值。若 m_ids 为空,则 min_trx_id 等于 max_trx_id。
max_trx_id

是系统即将分配给下一个事务的 ID,即当前最大事务 ID + 1。

注意这个当前事务最大ID并不是ID列表的最后一个值,因为当前创建ReadView的时候,有的事务没提交,有的事务提交了

比如(1,3,5,6)没提交,他们就是m_ids。但是(2,4,7)提交了已经,最大ID是7。

所以当我们遇见了在[min_trx_id,max_trx_id)之间的事务,我们得去判断它到底在不在m_ids里面。

相关推荐
optimistic_chen15 分钟前
【Java EE进阶 --- SpringBoot】Mybatis操作数据库(基础)
数据库·经验分享·spring boot·笔记·spring·java-ee·mybatis
支付宝小程序云20 分钟前
百宝箱开放平台 ✖️ 查询信息列表
数据库
对着晚风做鬼脸35 分钟前
MySQL进阶知识点(六)---- 存储引擎
数据库·mysql
百锦再43 分钟前
从 .NET 到 Java 的转型指南:详细学习路线与实践建议
android·java·前端·数据库·学习·.net·数据库架构
卷Java1 小时前
uni-app 模板语法修复说明
java·数据库·spring boot·uni-app·mybatis
我要用代码向我喜欢的女孩表白2 小时前
HBase全量+增量迁移import/export方式
大数据·数据库·hbase
源码部署22 小时前
Java-尚硅谷_数据库中间件_Mycat教程
数据库
-dcr2 小时前
21.mariadb 数据库
数据库·云计算·运维开发·mariadb
荒村瘦马3 小时前
MySQL中SELECT 语句如何 INTO OUTFILE 保存数据到文件
数据库·mysql·导出文件·into outfile
Script kid3 小时前
Pytest框架速成
数据库·pytest