MySQL和TiDB RR隔离级别下的不一致问题

默认RR,历史遗留问题

使用rc大多还是为了效率,并发的时候效率高一点。

rr主要是我没想明白有啥用,一个事务commit的数据另外一个事务查不到的好处是啥。

另外这个rr也不是数据库原理传统意义的rr隔离级别,那个rr是读的数据加锁了
传统意义的rr:所有被Select获取的数据都不能被修改,这样就可以避免一个事务前后读取数据不一致的情况。

代码实现估计有修改,导致不同结果

有些场景是需要RR的,比如涉及主从数据库数据同步的时候,RC隔离级别和RR隔离级别下的从库得到的结果是不一样的,RC隔离级别下会造成从库的数据错乱。

可以看下这篇文章,里面的案例讲述的还是比较清楚:我的阿里二面,为什么MySQL选择REPEATABLE READ作为默认隔离级别?-HollisChuang's Blog

你说的是很多年前的事了,现在同步用row跑

设置了事务隔离级别了吗

没有这现象了吧,我模拟不出来呢

RC可以