Non-Repeatable Read
非再現読み取り(non-repeatable read)とは、同一トランザクション内で同じ行を2回読んで異なる値を得る現象(別トランザクションが変更をコミットした)であり、read committedでも残存する異常である。
目的
非再現読み取りとファントムリードを区別し、repeatable read分離レベルの価値を理解する。
メカニズム
トランザクションAが行Xを2回読む間に、トランザクションBがXを変更してコミットするため、Aは異なる値を目にする。ファントムリードとの違いは、非再現読み取りは行の内容が変わるのに対し、ファントムリードは行数が変わることである。repeatable read以上で防止される。
ユースケース
- 並行性異常(アノマリー)の解析
- 分離レベルの選択
- トランザクションの一貫性