mysql クエリ デッドロック ステートメント: 1. 「select * from information_schema.innodb_locks;」ステートメントは、テーブルをロックするかどうかを決定できます。 2. 「select * from information_schema.innodb_locks;」ステートメントは、トランザクションをクエリできます。 locked; 3 、ロックなどを待機しているトランザクションをクエリするための「select * from information_schema...」ステートメント。
このチュートリアルの動作環境: Windows 10 システム、MySQL バージョン 5.7、Dell G3 コンピューター。
mysql クエリのデッドロック ステートメントとは何ですか?
mysql クエリ テーブル デッドロック ステートメント
1. テーブルをロックするかどうかを決定します
select * from information_schema.innodb_locks;
2. ロックされているトランザクションをクエリします
select * from information_schema.innodb_locks;
3 . ロックを待機しているトランザクションのクエリ
select * from information_schema.innodb_lock_waits;
4. コミットされていないトランザクションのクエリ
select * from information_schema.innodb_trx
5. すべてのスレッドのクエリ
select * from information_schema.PROCESSLIST;
関連拡張機能:
ロック タイプ
mysql ロック レベル: ページ レベル、テーブル レベル、行レベル
テーブル レベル ロック: 小さなオーバーヘッド、高速ロック、デッドロックなし、大きなロック粒度、ロック競合の可能性 最高および最低の同時実行性。
行レベルのロック: オーバーヘッドが高く、ロックが遅い。デッドロックが発生する可能性がある。ロックの粒度は最も小さく、ロックの競合の可能性は最も低く、同時実行性は最も高くなります。
ページ ロック: コストとロック時間はテーブル ロックと行ロックの間です。デッドロックが発生します。ロックの粒度はテーブル ロックと行ロックの間で、同時実行性は平均です。
1.原因:
デッドロックとは、実行中にリソースの競合により 2 つ以上のプロセスが互いに待ち状態になり、外部からの力がなければ先に進むことができなくなる現象を指します。このとき、システムはデッドロック状態にある、またはシステムがデッドロックに陥っている状態 常に相互に待機しているこのようなプロセスをデッドロック プロセスと呼びます。テーブル レベルのロックではデッドロックが発生しないため、デッドロックの解決は主に最も一般的に使用される InnoDB に重点が置かれます。
デッドロックの鍵は、2 つ (またはそれ以上) のセッションがロックされる順序が矛盾していることです。
デッドロック問題を解決するための対応する鍵は、さまざまなセッションを順番にロックすることです。
推奨される学習: 「MySQL ビデオ チュートリアル 」
以上がmysqlクエリのデッドロックステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。