mysql事务RR隔离级别到底能否解决幻读的问题?

发布于 2022-09-06 09:46:37 字数 262 浏览 27 评论 0

在mysql的innodb引擎 默认RR隔离级别下, 假设表中有5条数据,
1.如果事务A中查询所有数据

2.然后在事务B中向表中插入一条数据并提交

3.回到事务A中查询, 发现数据没有新增

上面三步貌似已经可以证实解决了幻读的问题

但是如果在第三步不是查询, 而是插入, 却会提示你数据已经存在出现主键冲突, 或者你进行update, 也是可以进行更新的(虽然读不到这条数据) 这应该不属于幻读了吧?

那么这到底是什么原因呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猫腻 2022-09-13 09:46:37

这个推荐一篇文章吧,希望能解决你的困惑,写的还是挺详细的:
拨开云雾见天日:数据库单机事务原理全解析

待天淡蓝洁白时 2022-09-13 09:46:37

RR在读取数据,事务开启的时候,不允许修改操作。可以解决不可重复读的问题,但是还是不能根本解决幻读问题。幻读对应的应该是insert操作。RR针对的是update操作。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文