京东是开发还是测开呀?
点赞 1

相关推荐

07-15 20:43
门头沟学院 Java
mysql mvccmvcc允许多个事务同时读取同一行数据。做到了读读并行,读写并行。它是通过read view实现的,可看做是数据库的一个快照版本。read view有几个重要参数:m_ids:创建read view 时当前数据库活跃事务的id列表。(启动了还未提交的事务)min_trx_id:创建read view时活跃事务的最小id值max_trx_id:创建readview时数据库要分配给下一个事务的id,即m_ids中最大值+1creator_trx_id:创建该read view的事务idinnodb聚集索引记录中会有两个隐藏列:trx_id:一个事务对某条聚集索引记录改动时,会把该事务的id记录在这里roll_pointer:每次改动时会把记录写到undo日志中,本列存的是指向旧版本记录的指针。如下图,当隐藏列trx_id的值小于read view的min_trx_id,说明这个版本的数据是在readview创建之前就提交了,因此该版本的记录对当时事务可见。当大于max_trx_id时说明这个版本的记录是在readview创建后事务才提交的,因此对当前事务不可见如果再min和max之间,需要判断trx_id在不在m_ids中,如果在且当trx_id等于readview的creator_id时可见,因为是当前事务创建的。如果在且不想等,说明生成该版本的事务还活跃着并且不是当前事务创建的,该版本记录对当前事务不可见。如果不在m_ids中说明生成该版本的事务已经提交,该版本记录对当前事务可见。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务