跳到主要内容
uencoder

Phantom Read

幻读是同一事务内两次范围查询返回不同行数(其他事务插入/删除了匹配行),是可重复读级别仍存在的异常。

用途

理解范围查询在并发下的幻行问题及防御(next-key lock / SSI)。

机制

事务 A 两次 SELECT WHERE age>20,事务 B 在其间 INSERT age=25 并提交,A 第二次查询多出一行(幻行)。防御:谓词锁、next-key lock(MySQL)、SSI(PostgreSQL)。

用例

  • 并发异常分析
  • 范围查询隔离
  • 锁策略设计

相关工具

参考链接