Mysql MVVC
MVVC就是用管理快照实现多版本并发控制吗,保证了数据库的隔离性。
读已提交 如何保证数据的隔离型
当我们开始一个事物的时候我们就会创建一个快照, 每一个快照都有一个时间戳作为标记,如果我们已经修改了数据但是还没有提交那么快照的状态就是已修改未提交,如果已经修改提交状态就是已修改已提交,然后当有事物查询的时候就会去找最新版本的快照通过时间戳判断。
可重复读
首先事物开启的时候首先会开启一个私有快照,然后事物提交了,再把修改的操作同步到最新的共有快照。
快照清理
当隔离界别是可重复度repeatable read那么就事物提交了会清理自己的私有快照。
mysql会定期清理我们的old 快照,具体多长时间清理一次? 这个mysql会通过我们的服务器性能来判断