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

推薦する

MySQL フィールドで NOT NULL を使用する必要があるのはなぜですか?

私は最近新しい会社に入社したのですが、データベース設計にいくつか小さな問題があることに気付きました。...

MySQL パーティションテーブルの制限と制約の詳細な説明

ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...

js に基づいて大きなファイルのアップロードとブレークポイントの再開を管理する方法

目次序文フロントエンド構造バックエンド構造(ノード+エクスプレス) FormDataに基づくファイル...

HTML でハイパーリンク タグを使用するチュートリアル

ウェブサイトのさまざまな HTML ドキュメントはハイパーリンクを通じて相互に接続され、一貫性のある...

MySQL 5.7 zip版(zip版)のインストールと設定手順の詳細

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

div タグ内の要素の margin-top が無効である場合の解決策

タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...

ウェブサイトの画像にグレー効果を加える3つの方法

私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っていま...

Webpack3+React16コード分割の実装

プロジェクトの背景最近、webpackのバージョンが古いプロジェクトがあります。 リーダー層では今の...

レスポンシブデザインについて知っておくべきこと

レスポンシブデザインとは、ウェブサイトの開発プロセス中に、ユーザーの操作やデバイス環境に応じて対応す...

Zabbix上のすべてのホストのIPとホスト名を取得する

ザビックスZabbix ([`zæbiks]) は、WEB インターフェースに基づいて分散システム監...

React refの使用例

目次refとは何かrefの使い方DOM要素に配置するクラスコンポーネントに配置する関数コンポーネント...

HTML フォームタグチュートリアル (5): テキストフィールドタグ

<br />このタグは、さらにテキストを入力できる複数行のテキスト フィールドを作成する...

MySQLデータベースのnullに関する知識ポイントのまとめ

MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...

MySQL ストアド プロシージャのエラー処理例の詳細な説明

この記事では、例を使用して MySQL ストアド プロシージャのエラー処理について説明します。ご参考...