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

推薦する

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...

docker ログ - docker コンテナ ログの実装を表示します

docker logs コマンドを使用してコンテナ ログを表示できます。コマンド形式: $ dock...

jsを呼び出すいくつかの方法が整理され、使用が推奨されています

a タグではクリック イベントがよく使用されます。 1. href="javascript...

Ubuntu 20.04 LTSの詳細なインストール履歴

この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...

ネイティブJSで実装されたギャラリー機能

目次最初2番目Native Js はギャラリー機能を実装します。画像をクリックすると、対応する拡大画...

WebWorkerはJavaScriptサンドボックスの詳細をカプセル化します

目次1. シナリオ2. IJavaScriptShadowboxを実装する2.1 メインスレッドの実...

Dockerはbusyboxを使用してベースイメージを作成します

Docker イメージの最初の行は FROM alpine などのイメージで始まりますが、最初のベー...

別の種類の「キャンセル」ボタン

「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

div の特定の実装は自動的に折り返されず、HTML で折り返されないよう強制されます。

1. 改行なしを実現するには<nobr>タグを使用するコードをコピーコードは次のとおりで...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

Linux で so または実行可能プログラムの依存ライブラリを表示します

Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...