ダーティは非反復可能読み取りとファントム読み取り、読み取っ

原因は3つの読み取り法です:変化へのデータのリード線の同時アクセスによるものです

1.ダーティリード(非コミット読み取り)

  トランザクションは、エラーが発生し、Bは、その後、トランザクションはダーティデータを読み取ることであれば、データBのトランザクションは、トランザクションのロールバック操作が登録されていません読み込みます。

2.非反復可能読み取り(前に何度も読んで、一貫性のないデータを見つけました)

  トランザクションAは非常に長い時間を通過する必要があるかもしれません前に、データを読んだ後で、完全な、比較的大きいため、読み取り操作は、トランザクションで実行されます。トランザクションAが完成読取データを有する場合、次に、イベントBが実行する変更操作を、前のデータが修正された、ときに、第2の時間を読んで、以前に異なるとリードデータの内容を発見されたデータのトランザクションA列であること、データが繰り返されていません。

  トランザクション トランザクションB
1 トランザクションを開始  
2 まず、リードデータ、20の暁明年齢  
3   トランザクションを開始
4 その他の操作  
5   30の変更暁明の年齢
6   トランザクションをコミットします
7 第2のデータを読み込み、年齢のためのこの時間は30暁明です  
リマーク 通常のロジックによれば、データA取引の前と後の二回取ら一貫している必要があります

 

3.ファントムリード(データの矛盾の量が発見され、前後に何回も読んで)

  読み出し動作を行った後のトランザクションの合計量は、一度に問い合わせ前に2つの統計、データの合計量を必要とする; Bは、新たなデータの操作ここで取引合計金額を行い、提出する;第2のイベントのためにAさらにいくつかのデータよりも理由もなく、同じような錯覚を持っていたとして、データの総量は、統計の異なる数で初めて発見されたリード。

  トランザクション トランザクションB
1 トランザクションを開始  
2 最初のクエリは、データ量を想定することは100であります  
3   トランザクションを開始
4 その他の操作  
5   100の新しく追加されたデータ
6   トランザクションをコミットします
7 第二の問い合わせは、データの量が200に持っていることがわかりました  
リマーク 通常のロジックによれば、データA取引の前と後の二回取ら一貫している必要があります

おすすめ

転載: www.cnblogs.com/blue-tea/p/11815047.html