四つの分離レベルとデータベーストランザクションの特性

私たちは、データベースの分離レベル最初のリコール問題を理解する前に、データベースからデータを読み込むときに発生することがあります。

(1)ダーティ・リード

トランザクションデータ更新操作するだけでなく、最初のトランザクションは操作が失敗したロールバックされたため、この時点で、追加のトランザクションデータを読む時間がダーティデータであれば終了し、別のトランザクションは、この時点でのデータを読み込みます。

(2)非反復可能読み取り

トランザクションは、例えば、データの読み出し、およびトランザクションBは直ちにデータを変更し、データベースにトランザクションを提出すると、データは再び、異なる結果が得られたトランザクション、非反復可能読み取り伝送読み出されます。

PS:いくつかのケースでは、非反復可能読み取りは、問題は、我々は繰り返し、当然のデータクエリを照会しているベースの最終的な結果を得るためのような、ではありません。他のケースで問題が発生する可能性があります。しかし、例えば、ターンクエリで同じデータAとBは異なる場合があり、AとBは、最大再生することができます......

(3)魔法の読書

ポイントのケース:トランザクションのすべてのデータの表は、この時点で2トランザクションB、Aのデータを挿入して、あなたが同じような錯覚に発生したように、この時点でのデータのための2が、あったことを見つけることができ、その後、0にクリアされています。

4つの分離レベル

(1)非コミット読み取り

  非コミット読み取り、トランザクションがまだ提出していない読んでは、ダーティリード現象があるだろう、読み込まれます。----書き込み、読み取りを可能にします

(2)コミット読みます

  提出読書、トランザクションデータが更新トランザクションがコミットした後、データを読み取るためにトランザクションを待つ(UPDATE)操作、読み出し動作を更新された場合には、提出後に読取り専用トランザクションで、ダーティ・リードの問題を解決することができます。これは、トランザクションの範囲内で同じクエリに登場したが、非反復可能読み取りである二つの異なるデータを、返されました。----書き込み禁止の読み取り

(3)反復リード

  反復可能読み取りは、読み出したデータは、最初(オープントランザクション)である場合には、変更操作はもはや許されません。----、読み書きを禁止し、すべての取引を禁止する書き込み。

(4)シリアライズ

  シリアライズ可能トランザクション分離レベルは、このレベルでは、最も高い、汚れを回避するために、トランザクションの実行直列化順序は、読み込み、非反復可能読み取りとファントムをお読みください。しかし、これは非効率的なトランザクション分離レベル、データベースの比較消費性能は、一般的に使用されていないです。

 

トランザクションの4つの特徴:

原子性(アトミック):アトミックトランザクション内のすべての操作を意味し、全てが成功するか、すべてロールバックに失敗のいずれかに含ま

一貫性(一貫性):一貫性は、トランザクションが別の一貫した状態にある一貫した状態からデータベースを変換する必要があることを意味し、それは、トランザクションの実行と実装が一貫性のある状態でなければなりません前と後と言うことです。

分離(隔離):テーブルこのような操作としてデータベースへの同時アクセスは、複数の、各ユーザのトランザクションのデータベースのオープンが、操作が間の同時複数のトランザクションに他のトランザクションによって妨害されていないユーザの単離孤立

持続性(耐久性):トランザクションがコミットされると、その変更は永続的にデータベースに保存行われます。システムがクラッシュした場合でも、この時点では、変更されたデータが失われることはありません。

おすすめ

転載: www.cnblogs.com/leonandyou/p/11306466.html