max_trx_id :这个并不是 m_ids 的最大值,而是创建 Read View 时当前数据库中应该给下一个事务的 id 值,也就是全局事务中最大的事务 id 值 + 1;
注意:max_trx_id 并不是m_ids中的最大值,事务id是递增分配的。比如,现在有id为1,2,3这三个事务,之后id为3的事务提交了。那么一个新的读事务在生成ReadView时,m_ids就包括还活跃的事务1和2,min_trx_id的值就活跃事务 中事务 id 最小的事务,即1,max_trx_id的值就是4。
在创建 Read View 后,可以将记录中的 trx_id 划分这三种情况:
undolog中每条记录的两个隐藏列
trx_id,当一个事务对某条聚簇索引记录进行改动时,就会把该事务的事务 id 记录在 trx_id 隐藏列里;