对正在事务内处理的数据做多版本的管理
在InnoDB 中,MVCC 是通过Undo log 实现的。
每一条记录mysql会自动加三列其中两列分别是 数据行的创建版本号(是新增记录的事务id号),删除的版本号(删除记录的事务id)
update 先copy命中记录(也就是先插入再删除)插入的事务id作为copy后记录的数据行创建版本号,插入的事务id也作为源记录删除的版本号,copy后的记录删除的版本号为空
select查询时,要查询比当前事务的数据创建版本号要小,删除版本号为空或者比当前事务的删除版本号大
网友评论