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のカスタムディレクティブの詳細なガイド

推薦する

CSS スタイル分類入門(基礎知識)

CSSスタイルの分類1. 内部スタイル ---- インラインスタイルスタイルタグの使用 <ス...

Windows での MySQL 5.7.18 のインストールと設定のチュートリアル

この記事では、WindowsでのMySQL 5.7.18のインストールと設定のチュートリアルを参考ま...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

MySQL <> および <=> 演算子の紹介

<> 演算子機能: 等しくないことを示します。注: 「!=」演算子と同じ機能を持ちますが...

Mysql通信プロトコルの詳細な説明

1.Mysql接続方法MySQL 通信プロトコルを理解するには、まず MySQL サーバーへの接続に...

Vueデータ監視の原理の詳細な説明

目次1. はじめにII. 監視対象2.1 なぜオブジェクトを監視する必要があるのですか? 2.2 デ...

MySQLのレプリケーションとチューニングの原則と方法を分析する

1. はじめにMySQL にはレプリケーション ソリューションが付属しており、次のような利点がありま...

JavaScript の組み込みオブジェクト 数学と文字列の詳細な説明

目次数学オブジェクト共通プロパティ一般的な方法Math.random()文字列メソッド長さプロパティ...

ウェブサイトをより高く、よりデザイン的に見せる方法

「ウェブサイトを高級感のあるものにするにはどうすればいいでしょうか? それともデザイン重視にすればい...

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示このメソッドは主にオーバーフローを通じて BFC をトリガーし...

外部ネットワークアクセスを許可するためのMysql5.6の設定手順の詳細を共有する

最近、MySQL 5.6 を導入しましたが、デフォルトでは MySQL はローカル サービスのみを許...

Nginx 構成検出サービスのステータスを実装する方法

1. チェックステータスモジュールがインストールされているかどうかを確認します。 [root@loc...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報

以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...

Linux bzip2 コマンドの使用

1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...