分離レベル (Isolation Level)

  1. トランザクション同時実行時の問題点
  2. トランザクションを同時実行した場合に、トランザクションの分離レベルによっていくつかの問題が発生する。

    1. 更新データの損失 (Lost Updates)
    2. ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。

    3. ダーティーリード (Dirty Read)
    4. 別のトランザクションにより更新されたが、まだコミットされていないデータを読んでしまえる。

    5. 反復不可能読み取り
    6. トランザクション中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一トランザクション内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。

    7. ファントムリード
    8. トランザクション中に、突然現れたり消えたりしてしまうデータ。 同一トランザクション内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。

  3. 分離レベル (Isolation Level)
  4. 分離レベル (Isolation Level)
    Isolation
    分離レベル
    Dirty Read
    ダーティーリード
    Non-Repeatable Reads
    反復不可能読み取り
    Phantom Reads
    ファントムリード
    Read Uncommitted
    非コミット読み取り
    起こりうる 起こりうる 起こりうる
    Read Committed
    コミット済み読み取り
    - 起こりうる 起こりうる
    Repeatable Read
    繰り返し可能読み取り
    - - 起こりうる
    Serializable
    直列化可能
    - - -