如何判断事务是否可见性还是不太理解,于是作了本文,在原博客基础上,举例画图论证、理解了Read View
的可见性判断。
隐式字段
每行记录除了我们自定义的字段外,还有数据库隐式定义的 DB_TRX_ID
, DB_ROLL_PTR
, DB_ROW_ID
等字段
DB_TRX_ID
6 byte,最近修改(修改/插入)事务 ID:记录创建这条记录/最后一次修改该记录的事务 IDDB_ROLL_PTR
7 byte,回滚指针,指向这条记录的上一个版本(存储于 rollback segment 里)DB_ROW_ID
6 byte,隐含的自增 ID(隐藏主键),如果数据表没有主键,InnoDB 会自动以DB_ROW_ID产生一个聚簇索引
Read View
的三个全局属性
trx_list
(名称我随意取的):一个数值列表,用于维护Read View
生成时刻系统 正活跃的事务 ID 列表
up