1.没有一个一致的完成规范,完成了非壅塞的读操纵,写操纵也只锁定必要的行
2.经由过程保留数据在某个时候点的快照完成的
3.典范的有乐观并发掌握和消极并发掌握
4.innodb的mvcc是每次事件都有递增的版本号,经由过程在每行纪录的背面增加两列隐蔽字段,两列分别是是建立版本号和删除版本号,存储操纵它事件的版本号
5.在事件中增编削查就是对两列版本号字段举行操纵
insert 为新插进去的每一行保留当前事件版本号到 行建立版本号字段
update 插进去一行新的保留当前事件建立版本号,修正原行数据的删除版本号为本次事件的版本号
delete 修正行的删除版本号字段为本次事件的版本号
select 查询 建立版本号字段 小于即是当前事件版本的数据 确保该纪录是本次之前就存在的或本次事件新插的
查询 删除版本号字段 不存在或许大于当前版本的数据 确保该纪录在本次事件之前没删除
6.如许的设想就不须要加锁了,读和操纵性能好,然则须要分外的存储空间
7.mvcc只在REPEATABLE READ和READ COMMITED两个断绝下事情;READ UNCOMMITED老是读取最新数据;SERIALIZABLE对读取的行都加锁
【引荐课程:mysql视频教程】
以上就是[MySQL] MVCC多版本并发掌握完成的事件的细致内容,更多请关注ki4网别的相干文章!