tidb的rc隔离级别与mysql的rc隔离级别不一样?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.1
【复现路径】做过哪些操作出现的问题
【遇到的问题:在tidb里,rc隔离级别下,t1、t2两个事务,t1先开启,先查询数据,t2修改了数据并提交,t1再次查询数据,t1可以看到t2修改的数据,但是在mysql里,rc隔离级别下,t1的两次查询是一样的?这如何解释?

TiDB 事务隔离级别 | PingCAP 文档中心

你的mysql设置有问题,确认是rc?

1 个赞

感觉不太像rc,要不上点测试代码?

1 个赞

MySQL 默认的事务隔离级别是可重复读REPEATABLE-READ,不是read commited,我猜你记错了

mysql默认是rr啊,不是rc

MySQL 默认的事务隔离级别是可重复读,Oracle 默认的事务隔离级别是读提交。

MySQL 默认的事务隔离级别是RR,Oracle 默认的事务隔离级别是RC,好好检查一下是不是设置的问题

对不起 各位老铁,我错了

rr是可重复读谢谢,mysql默认的级别

mysql中rc如果开启事务后再去2次select是不可能出现一致的。
因为mysql的快照读是基于mvcc的。rc中每次select都会去更新mvcc中的readview,所以同一事务中2次读的结果肯定不是一致的。

一致性读,在一个事务里读的的结果 一样,commit后再查就可以了 读已提交(rc)是指读到开始事务之前提交的,不是开始事务之后提交的