三、MVCC 多版本并发控制
(一)什么是 MVCC?
在数据库里,多个事务会同时读写同一条记录。
如果没有并发控制,就会出现:
一个事务正在读,另一个事务已经修改了-》读到不一致的数据
一个事务正在写,另一个事务也在写-〉数据冲突
为了解决这些问题,数据库引入 MVCC(Multi-Version Concurrency Control,多版本并发控制)
每个事务读到的不是同一个正在被修改的数据,而是自己对应的历史版本快照。
RC 和 RR 的本质区别
RC 每执行一条 SELECT 就重新生成一个 ReadView,所以同一个事务
两次 SELECT 会看到别的事务新提交的内容,不可重复读
RR 只在事务开了之后第一次 SELECT 生成一次 ReadView,之后所有 SELECT 都复用这个,可重复读
