rc问题
来源:5-3 事务和乐观锁
manong22
2019-12-04
老师您好,mvcc下select是不加锁的,是快照读,
问题一:以前rc和rr区别就是在select加锁上,那么mvcc下RC和RR有啥区别了?
问题二:RC是不是也可以解决可重复读的问题了,研究了好长时间,麻烦老师详细解答下,谢谢
写回答
1回答
-
ccmouse
2019-12-11
mvcc是一中实现方式或是标准。而rc(read committed)和rr(repeated read)是其目标。
在rc中,我会读到别人对数据的改动,在rr中,不管别人怎么改,我之前读的是多少,只要我不改,就一直是多少(当然是在一个transaction里面)。这个区别还是存在的。只是实现rr的时候,用到了mvcc快照读的技术。
RC是不是也可以解决可重复读的问题了?不能,因为rc就是rc,既然mysql提供了这种rc的isolation level,就要符合rc的定义,就是不可重复读。
不过你的思考非常有用,它解释了为什么之前其它数据库的默认isolation level是rc,而mysql是rr。因为mvcc的确像你所说的,已经解决了可重复读的问题,那我们就没有比较强行降一级让大家默认在rc的隔离级别下工作,所以干脆默认就是rr。
00
相似问题