削除/挿入操作後の MySQL 取得の不整合の解決
MySQL 内での削除および挿入操作後に古いデータが発生することは、一般的な問題です。マルチスレッドアプリケーション。この動作を理解するために、基礎となる原則を詳しく見てみましょう。
MySQL 分離レベル: 犯人
デフォルトでは、MySQL は「REPEATABLE READ」分離レベルで動作します。この設定により、変更がトランザクション内で行われたかトランザクション外で行われたかに関係なく、トランザクションはその後のデータベース変更の影響を受けなくなります。
問題のコンテキストでは、古いセッションを削除した後、新しい接続を作成しても、他のスレッドにサービスを提供する開いている接続には、これらの変更の前にトランザクションが開始されたため、古いセッションが表示される可能性があります。他の接続がトランザクションをコミットまたはロールバックしても、「REPEATABLE READ」分離レベルが原因で更新されたデータが観察されない可能性があります。
解決策: 分離レベルを変更するか、トランザクションをコミットする
このキャッシュの問題に対処するには、主に 2 つの方法があります。オプション:
追加のキャッシュに関する考慮事項
MySQL の分離レベルとは別に、その他のキャッシュ動作に影響を与える可能性のある要因:
MySQL 分離レベルに対処し、他のキャッシュ要素を考慮することで、データ取得の不整合を解決し、データベース更新の正確な処理を保証できます。アプリケーション内で。
以上がMySQL アプリケーションで削除と挿入の操作後に古いデータが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。