トランザクション分離レベル、および関連する現象の特徴

MySQLでのトランザクション

  • 取引は「何もしない、またはフル(オールオアナッシング)を行うのどちらか」のメカニズムを提供し、彼女は4つのプロパティを持つACID
  1. アトミック(原子性):トランザクションは、データベースの操作中に、その中に含まれる、全体として実行されるが、いずれかの実行されたすべての実行またはされていません。
  2. 一貫性(整合性):サービスが他の一貫した状態にある一貫した状態からデータベースの状態ことを確認すべきです。データベース内のデータの一貫性のある状態を参照整合性制約を満たす必要があります。また、セマンティック整合性の別の層が存在し、トランザクションの中間状態(この層もセマンティック不可分の一部であると言われている)観察することができません。
  3. 分離(隔離):唯一の動作は、同じデータベース内で実行されるように、同時複数のトランザクションが実行されるが、他のトランザクションからトランザクションを及ぼしてはなりません。
  4. 永続性(耐久性):トランザクションが永続的にデータベースに格納する必要がありますデータベースを変更するために提出されました。トランザクションの終了時に、この操作は不可逆的になります。
  • トランザクション分離レベル
  1. 非コミット読み取り(コミットされていない読み取り)
    1. 知られている無効なデータでなければならないトランザクションがデータBコミットされていないトランザクションを読み取り、トランザクションはバックBを圧延してもよいし、トランザクションを読み取り、ダーティ・リード
    2. 両方ではないオン・ライト・データ・ライン、更新に失敗を避けるために、しかし読み、それはダーティリードが発生することがあります。
  2. コミット読み取り(コミット読み取り)
    1. 書き込みトランザクションは、書き込まれたデータの禁止の書き込み、読み出しが禁止されます
    2. 読み出しトランザクションは、他のトランザクションは、読み取りと書き込みが許可されています
    3. B中間データは、このトランザクション用に更新されていて、トランザクションをコミットする場合は、フロントとリアAのトランザクションは、同じデータを2回読み込むと、その後、A 2の前にトランザクションデータが矛盾が呼ばれている読み込み読ん繰り返し
  3. 反復可能読み取り(反復可能読み取り)
    1. 、トランザクションのオープンを読み取り、変更操作は、他の業務を許可していませんが、読み取ることができます
    2. 場合は、挿入操作、読み取りトランザクションの前と後の合計数は、ファントムリードと呼ばれる、不整合が生じることがあり
  4. シリアライズ(直列化)
    1. ロックテーブルの操作は、トランザクションだけ回避するように、というよりも、並行して、実行のためにキューに入れることができる汚れは、反復可能読み取りの一貫性のない、ファントム読み取りの数を読み取ります

おすすめ

転載: www.cnblogs.com/erfsfj-dbc/p/12165358.html