トランザクションの隔離レベルについて
SQLの規格では、トランザクションにおいて発生するべきでないとする3つの現象について定義している。
- ダーティリード
- 反復不能読み取り
- ファントムリード
ダーティリードとは、あるトランザクションがデータを更新してコミットする前のデータを、他のトランザクションが読み込んでしまう状態。
反復不能読み取りとは、あるトランザクションがデータを読み込んだ後、他のトランザクションがデータを更新&コミットを行った結果、再度データを読み込んだ際に前回読みこんだデータと異なる状態のこと。
ファントムリードとは、あるトランザクションがデータを読み込んだ後、他のトランザクションがデータを更新&コミットを行った結果、再度データを読み込んだ際に前回読みこんだデータと異なる状態のこと。
反復不能読み取りと異なるのは、検索条件に行の集合を使った場合にかかわる話だということ。(これ以上はよくわからない。。orz)
これらに対応するために、トランザクションの隔離レベル4つがある。
・・・