MySQL テーブルがロックされているかどうかを照会する方法

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法:

(推奨チュートリアル:MySQLデータベース学習チュートリアル)

テーブルロックの状態を確認する

# ロックされているテーブルを確認します。show OPEN TABLES where In_use > 0;

デッドロックの原因となったSQL文を表示する

# innodb エンジンのランタイム情報を照会します。show engine innodb status;

クエリプロセス

#すべてのプロセスを照会します show processlist;

ロック解除(削除処理)

# プロセス kill ID を削除します。

ロックされているものを表示する

# ロックされているものを表示する SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS

ロック待ちのものを表示する

# ロックを待機しているトランザクションを表示します SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

補足コンテンツ

MySQL ロックステータス表示コマンド

状態意味
チェックテーブルデータ テーブルをチェックしています (これは自動です)。
テーブルを閉じるテーブル内の変更されたデータはディスクにフラッシュされ、使用されていたテーブルは閉じられています。これは非常に迅速な操作ですが、そうでない場合は、ディスクがいっぱいになっていないか、ディスクに大きな負荷がかかっていないかを確認する必要があります。
接続アウトレプリケーション スレーブ サーバーがマスター サーバーに接続しています。
ディスク上の tmp テーブルにコピーしています一時結果セットが tmp_table_size より大きいため、メモリを節約するために一時テーブルがメモリ ストレージからディスク ストレージに変換されています。
一時テーブルを作成しています部分的なクエリ結果を保持するための一時テーブルを作成します。
メインテーブルから削除サーバーは複数テーブルの削除の最初の部分を実行しており、最初のテーブルを削除しました。
参照テーブルから削除するサーバーは複数テーブル削除の 2 番目の部分を実行しており、他のテーブルからレコードを削除しています。
フラッシングテーブルFLUSH TABLES が実行されており、他のスレッドがデータ テーブルを閉じるのを待機しています。
殺されたスレッドに kill 要求が送信された場合、スレッドは kill フラグをチェックし、次の kill 要求を破棄します。 MySQL は各メイン ループで kill フラグをチェックしますが、場合によってはスレッドが終了するまでに時間がかかることがあります。スレッドが他のスレッドによってロックされている場合、ロックが解除されると、kill 要求は直ちに有効になります。
ロックされています別のクエリによってロックされています。
データの送信SELECT クエリのレコードが処理され、結果がクライアントに送信されています。
グループの並べ替えGROUP BY のソート。
順序の並べ替えORDER BY によるソート。
テーブルを開く他の要因によって妨害されない限り、このプロセスは迅速に行われるはずです。たとえば、ALTER TABLE または LOCK TABLE ステートメントが完了するまで、他のスレッドはテーブルを開くことができません。テーブルを開こうとしています。
重複の削除SELECT DISTINCT クエリが実行されていますが、MySQL は前の段階で重複レコードを最適化できませんでした。したがって、MySQL は重複レコードを再度削除し、その結果をクライアントに送信する必要があります。
テーブルを再度開くテーブルのロックは取得されますが、ロックはテーブル構造が変更された後にのみ取得できます。ロックが解除され、テーブルが閉じられ、テーブルを再度開こうとしています。
分類による修復インデックスを作成するためにソートされる命令を修正しました。
キーキャッシュで修復修復命令は、インデックス キャッシュを使用して新しいインデックスを 1 つずつ作成します。ソートによる修復よりも遅くなります。
更新する行を検索しています条件を満たすレコードが更新対象として検索されています。 UPDATE が関連レコードを変更する前にこれを実行する必要があります。
眠るクライアントからの新しいリクエストを待っています。
システムロック外部システム ロックの取得を待機しています。同時に同じテーブルを要求する複数の mysqld サーバーを実行していない場合は、--skip-external-locking パラメータを追加して外部システム ロックを無効にすることができます。
ロックのアップグレードINSERT DELAYED は、新しいレコードを挿入するためにテーブル ロックを取得しようとしています。
更新中一致するレコードを検索して変更します。
ユーザーロックGET_LOCK() を待機しています。
テーブル待ちスレッドには、データ テーブル構造が変更され、新しい構造を取得するために再度開く必要があることが通知されます。その後、データ テーブルを再度開くには、他のすべてのスレッドがテーブルを閉じるまで待つ必要があります。この通知は、FLUSH TABLES tbl_name、ALTER TABLE、RENAME TABLE、REPAIR TABLE、ANALYZE TABLE、または OPTIMIZE TABLE の状況で生成されます。
ハンドラの挿入を待機中INSERT DELAYED は保留中の挿入操作をすべて処理し、新しい要求を待機しています。

これで、MySQL テーブルがロックされているかどうかを照会する方法に関するこの記事は終了です。MySQL テーブルがロックされているかどうかを照会する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Mysql トランザクションで Update を実行するとテーブルがロックされますか?
  • MySQLデータベースのロック機構の分析
  • MySQL のデッドロック チェックとデッドロック除去の例の詳細な説明
  • MySQLのデッドロックチェック処理の通常の方法
  • 例を通してMySQLの更新がテーブルをロックするかどうかを判定する
  • MySQL における悲観的ロックと楽観的ロック
  • MySQLの行ロックとテーブルロックの意味と違いの詳細な説明
  • MySQL の悲観的ロックと楽観的ロックの理解と応用分析
  • MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるようになりました (例)
  • MySQL ロック関連知識のまとめ

<<:  Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

>>:  Vueのカスタムディレクティブの詳細なガイド

推薦する

NGINXがウェブサイトのPV、UV、独立IPをカウントする方法の詳細な説明

Nginx: PV、UV、独立IPウェブサイトを作成する人なら誰でも、ウェブサイトのPV、UV、その...

Dockerでspringcloudプロジェクトをデプロイする方法

目次Dockerイメージのダウンロードmysqlとnacosを起動する独自のJavaプロジェクトを変...

Vueはコードのハイライトを実現するためにモナコを使用しています

Vue 言語と要素コンポーネントを使用して、コード コンテンツの入力を必要とし、ハイライト表示が可能...

複数のdiv内のテーブルのtdwidth設定は同じで、揃えることができません

最近、複数のdivにあるテーブルのTDを同じ幅に調整しても、揃えることができず、幅にパターンがないこ...

HTML でカスタム画像を使用してチェックボックスを表示する方法

チェックボックスの使用を実装するために画像を使用する必要がある場合は、それを使用して実装できます。実...

Linux がますます人気になっている 10 の理由

Linux はますます多くのユーザーに愛されてきました。なぜ Linux はこれほど急速に発展し、い...

Webサービスのリモートデバッグとタイムアウト動作原理の分析

Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...

アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

今日は、CSS を使用してアニメーションの再生と一時停止を制御する非常に簡単なトリックを紹介します。...

MySQL の時間保持問題に関する簡単な分析

MySQL のデフォルトの時間タイプ (datetime と timestamp) の精度は秒です。...

CSS の高さの崩壊問題の解決

1. 崩壊度が高いドキュメント フローでは、親要素の高さはデフォルトで子要素によって拡張されます。つ...

jsは古典的なマインスイーパゲームを実装します

この記事の例では、古典的なマインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有し...

Vueで背景色と透明度を設定する方法

背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...

MySQLでの少し複雑な使用例コード

序文MySQL の構文は誰にとっても難しいものではないと思いますが、この記事では主に MySQL の...

CSS3 クリアフロートメソッドの例

1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...

docker-maven-pluginはイメージをパッケージ化し、プライベートウェアハウスにアップロードします。

目次1. docker-maven-pluginの紹介2. 環境とソフトウェアの準備3. デモ例3....