为什么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里面。

相关推荐
weixin_4365250731 分钟前
jar包启动使用logs替换nohup日志文件
java·linux·数据库
7***998732 分钟前
Redis——Windows安装
数据库·windows·redis
Elastic 中国社区官方博客39 分钟前
Elasticsearch:在隔离环境中安装 ELSER 模型
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
321茄子40 分钟前
MySQL 索引失效
数据库·mysql
v***7941 小时前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
散修-小胖子1 小时前
TPCC-MySQL快速上手
数据库·mysql·oracle
roman_日积跬步-终至千里1 小时前
【模式识别与机器学习(18)】关联规则深入浅出教程
数据库·机器学习·oracle
杨DaB1 小时前
【MySQL】06 视图 view
数据库·mysql
星空露珠1 小时前
lua获取随机颜色rgb转换hex
数据结构·数据库·算法·游戏·lua
专注VB编程开发20年1 小时前
VB.NET多线程处理每个Web请求,ThreadPool.QueueUserWorkItem要求是object
数据库·vb.net·webserver