Mysql 幻读问题

152 天前
 150530

手动实现幻读问题

环境: 版本 8.0.27 ,默认隔离级别 RR

只是测试 sql 大小写不规范请不要介意

结论:只使用快照读或只使用当前读无幻读问题,混用会造成幻读问题(如果理解有误请各位指出)


CREATE TABLE `test` (
  `a` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

快照读 无不可重复读和读幻读问题,事务一始终读取快照,事务二插入对事务一无影响


当前读不会影响其他事务快照读,但会影响其他事务当前读( next-key )


快照读和当前读混用出现幻读问题( select 改为当前读即可解决)

1505 次点击
所在节点    MySQL
4 条回复
Leviathann
152 天前
索引也有影响的
150530
152 天前
@Leviathann 当前读下索引确实会影响锁定范围,锁粒度问题
mouseman
152 天前
本来就会这样的,你说的没错
Flourite
152 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/999943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX