Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、応答が返されない場合があります。この時点で、リソースを消費しているクエリ ステートメントを強制終了する必要があります。KILL コマンドの構文形式は次のとおりです。

KILL [接続 | クエリ] thread_id

mysqld への各接続は、個別のスレッドで実行されます。SHOW PROCESSLIST ステートメントを使用して実行中のスレッドを確認し、KILL thread_id ステートメントを使用してスレッドを強制終了できます。

KILL ではオプションで CONNECTION または QUERY 修飾子を使用できます。KILL CONNECTION は修飾子なしの KILL と同じです。つまり、指定された thread_id に関連付けられた接続を終了します。 KILL QUERY は、接続で現在実行中のステートメントを終了しますが、接続はそのまま残ります。

PROCESS 権限がある場合は、すべてのスレッドを表示できます。スーパー管理者権限を持っている場合は、すべてのスレッドとステートメントを終了できます。それ以外の場合は、自分のスレッドとステートメントのみを表示および終了できます。また、mysqladmin processlist コマンドと mysqladmin kill コマンドを使用して、スレッドを調べたり強制終了したりすることもできます。

まず MySQL にログインし、show processlist; を使用して現在の MySQL 内の各スレッドのステータスを表示します。

mysql> プロセスリストを表示します。 
+------+------+----------------------+--------+---------+----------+--------------------  
| ID | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 
+------+------+----------------------+--------+---------+----------+--------------------  
| 7028 | ルート | ucap-devgroup:53396 | プラットフォーム | スリープ | 19553 | | NULL  
| 8352 | ルート | ucap-devgroup:54794 | プラットフォーム | スリープ | 4245 | | NULL 
| 8353 | ルート | ucap-devgroup:54795 | プラットフォーム | スリープ | 3 | | NULL 
| 8358 | ルート | ucap-devgroup:62605 | プラットフォーム | クエリ | 4156 | 更新中 | t_shop セットを更新 |

上記は、現在実行中の SQL ステートメントのリストを表示し、最も多くのリソースを消費するステートメントに対応する ID を見つけます。

次に、kill コマンドを実行します。コマンドの形式は次のとおりです。

ID を強制終了します。 
- 例: 
8358人を殺す

ただ殺すだけ。

以下もご興味があるかもしれません:
  • mysql show processlistはmysqlクエリプロセスを表示します。
  • MySQLのkillがスレッドをkillできない理由
  • MYSQL でプロセスを表示および終了する方法

<<:  Linux環境でglogログライブラリを使用する方法

>>:  JavaScript で最も高速なループはどれですか?

推薦する

MySQL コピーテーブルと許可分析の 3 つの実装方法

テーブルを素早くコピーする方法まず、テーブル db1.t を作成し、1000 行のデータを挿入します...

Linuxでのcrontabの使い方と注意点の詳しい説明

Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...

Zabbix カスタム監視 nginx ステータス実装プロセス

目次Zabbix カスタム監視 nginx ステータス1. ステータスインターフェースを開く2. 監...

Mysql | ワイルドカード(%、_ など)を使用したファジークエリの詳細な説明

ワイルドカードのカテゴリ: %パーセント ワイルドカード: 任意の文字が任意の回数出現できることを示...

nginx サーバーでの 502 不正なゲートウェイ エラーの原因のトラブルシューティング

パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...

私のCSSアーキテクチャのコンセプト - それは人によって異なり、ベストなものはなく、適切なものだけがある

はじめに<br />私はフロントエンド分野でかなり長い間働いており、CSS分野でも長い間...

ページリファクタリングスキル - コンテンツ

雑談はここまでにして、インターネット上で見つかる高性能な Yahoo ウェブサイトを構築するための数...

実用的なウェブオンラインツール12選

1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...

MySQL テーブル フィールドの時間設定のデフォルト値

アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...

MySQL エラー: 接続数が多すぎる場合の解決策

MySQLデータベースの接続が多すぎますこのエラーは明らかに、mysql_connect の後に m...

よく使われるHTMLタグのインライン要素とブロックレベル要素の詳細な説明

ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...

Vue3+スクリプト設定+ts+Vite+Volarプロジェクト

目次Viteを使用してvue + tsプロジェクトを作成するVue 3の3つの構文オプションAPIコ...

HTML Web ページ リスト タグ学習チュートリアル

HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...

ES6 の Set および WeakSet コレクションの詳細な説明

目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...