mysql でテーブルをロックする理由は、あるプログラムがテーブルに対して挿入、更新、または削除操作を実行したがまだコミットされていない場合、別のプログラムも同じテーブルに対して同じ操作を実行し、その後、リソースがビジー状態の場合、つまりテーブルがロックされている場合、例外が発生します。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
mysql ロック テーブルの理由は何ですか
ロックは、コンピュータが複数のプロセスまたはスレッドを調整して特定のリソースに同時にアクセスするためのメカニズムです。 。
データベースでは、従来のコンピューティング リソース (CPU、RAM、I/O など) をめぐる競争に加えて、データは多くのユーザーによって共有されるリソースでもあります。
データへの同時アクセスの一貫性と有効性を確保する方法は、すべてのデータベースが解決しなければならない問題です。ロックの競合も、データベースへの同時アクセスのパフォーマンスに影響を与える重要な要素です。
この観点から見ると、ロックはデータベースにとって特に重要であり、より複雑です。
テーブル ロックの理由
1. テーブルのロックは、挿入更新および削除中に発生します。
2. テーブル ロックの原理は次のとおりです。データベースは排他的なロック メカニズムを使用しており、上記のステートメントが実行されると、コミットが発生するかロールバックが発生するか、データベース ユーザーが終了するまでテーブルはロックされます。
まず、プログラム A がテーブル A の挿入を実行し、コミットされていません。まだです。プログラム B も tableA を挿入します。このとき、リソース ビジー例外が発生します。これは、ロック テーブル
# です。第 2 に、ロック テーブルは、並列処理ではなく並行処理で発生することがよくあります (並列、1 つのスレッドの場合)他のスレッドはデータベースを操作できず、CPU と I/O の割り当て原則)
3. テーブルがロックされる可能性を減らす:
挿入の実行間隔を短縮します。ステートメントを更新および削除してコミットします。
具体的には、バッチ実行を単一実行に変更し、SQL 自体の非実行速度を最適化し、例外が発生した場合はロールバックします。
# 例は次のとおりです。 ##Use update
概要: 同じテーブルに対して削除操作を実行する場合は、削除条件を統一するようにしてください。そうしないと、相互に影響し、テーブルがロックされる可能性があります。推奨学習:
mysql ビデオ チュートリアル
以上がmysqlがテーブルをロックする理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。