コンテンツへスキップ
uencoder

Non-Repeatable Read

非再現読み取り(non-repeatable read)とは、同一トランザクション内で同じ行を2回読んで異なる値を得る現象(別トランザクションが変更をコミットした)であり、read committedでも残存する異常である。

目的

非再現読み取りとファントムリードを区別し、repeatable read分離レベルの価値を理解する。

メカニズム

トランザクションAが行Xを2回読む間に、トランザクションBがXを変更してコミットするため、Aは異なる値を目にする。ファントムリードとの違いは、非再現読み取りは行の内容が変わるのに対し、ファントムリードは行数が変わることである。repeatable read以上で防止される。

ユースケース

  • 並行性異常(アノマリー)の解析
  • 分離レベルの選択
  • トランザクションの一貫性

関連ツール

References