请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

rc问题

老师您好,mvcc下select是不加锁的,是快照读,
问题一:以前rc和rr区别就是在select加锁上,那么mvcc下RC和RR有啥区别了?
问题二:RC是不是也可以解决可重复读的问题了,研究了好长时间,麻烦老师详细解答下,谢谢

正在回答 回答被采纳积分+3

1回答

ccmouse 2019-12-11 22:31:08

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。


0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信