1.DB_TRX_ID:一个6byte的标识,每处理一个事务,其值自动+1 #下面提到的“创建时间”和“删除时间”记录的就是这个DB_TRX_ID的值 #如insert、update、delete操作时,删除操作用1个bit表示。 #DB_TRX_ID是最重要的一个,可以通过语句“show engine innodb status”来查找 2.DB_ROLL_PTR: 大小是7byte,指向写到rollback segment(回滚段)的一条undo log记录 (update操作的话,记录update前的ROW值) 3.DB_ROW_ID: 大小是6byte,该值随新行插入单调增加。 #当由innodb自动产生聚集索引时聚集索引(即没有主键时,因为MYSQL默认聚簇表,会自动生成一个ROWID) #包括这个DB_ROW_ID的值, #不然的话聚集索引中不包括这个值,这个用于索引当中。
DB_TRX_ID记录了行的创建的时间删除的时间在每个事件发生的时候,每行存储版本号,而不是存储事件实际发生的时间。
每次事物的开始这个版本号都会增加。自记录时间开始,每个事物都会保存记录的系统版本号。
依照事物的版本来检查每行的版本号。
在insert操作时 “创建时间”=DB_TRX_ID,这时,“删除时间”是未定义的;在update时,复制新增行的“创建时间”=DB_TRX_ID,删除时间未定义,旧数据行“创建时间”不变,
删除时间=该事务DB_TRX_ID;delete操作,相应数据行的“创建时间”不变,删除时间=该事务的DB_ROW_ID;select操作对两者都不修改,只读相应的数据