# データベースの同時操作では、通常、更新の損失、分析の不一致の問題、および「ダーティ データ」読み取りの問題が発生します。
関連する知識ポイントの紹介:
トランザクションは同時実行制御の基本単位です。
(関連チュートリアルの推奨事項: mysql チュートリアル)
同時操作によるデータの不整合
1. 変更の損失 (失われた) Update)
2. 反復不可能な読み取り
3. ファントム読み取り
4. 「ダーティ」データの読み取り Read)
それでは、見てみましょう別々に:
変更の喪失: 2 つのトランザクション T-1 と T-2 が同じデータを読み取って変更し、T-2 の送信結果によって T が破棄されました -1 の送信の結果により T が変更されました-1 失われます。 (変更-変更競合)
Non-repeatable read: トランザクション 1 が特定のデータを読み取り、トランザクション 2 がそれを変更します。トランザクション 1 が再度データを読み取ると、前回とは異なる値が取得されます (読み取り -更新競合)
ファントム読み取り: トランザクション T-1 は、特定の条件に従ってデータベースから特定のデータ レコードを読み取り、トランザクション T-2 は一部のレコードを削除 (挿入) します。T-1 が再度押されたとき、読み取り時同じ条件でデータを確認したところ、一部のレコードが謎に消えた(出現した)ことが判明しました。 (読み取り/挿入/削除の競合)
ダーティ データ: トランザクション T-1 が特定のデータを変更してディスクに書き戻し、トランザクション T-2 が同じデータを読み取った後、何らかの理由で T-1 がT-1 は取り消され、変更されたデータは元の値に復元され、T-2 によって読み取られたデータはデータベース内のデータと矛盾します。T-2 によって読み取られたデータは「ダーティ」データ、つまり不正なデータです。 (修正 - 読み取り競合)
データの不整合: トランザクションの分離を破壊する同時操作によるもの
同時実行制御の目的
このメソッドは、ユーザー トランザクションの実行が他のトランザクションによって干渉されないように同時操作をスケジュールし、データの不整合を回避します。
以上がデータベースの同時操作によってどのような問題が発生する可能性がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。