ホームページ  >  記事  >  データベース  >  Mysqlのデッドロック問題を解決するためのkillコマンドの使用に関する詳細な説明

Mysqlのデッドロック問題を解決するためのkillコマンドの使用に関する詳細な説明

黄舟
黄舟オリジナル
2017-06-18 10:45:062186ブラウズ

この記事では主に、kill コマンドを使用してデッドロック問題を解決する (実行中の SQL ステートメントを強制終了する) ための Mysql 関連情報を紹介します。

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

KILL [CONNECTION | QUERY] 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> show processlist; 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| Id  | User | Host         | db       | Command | Time | State   | Info 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| 7028 | root | ucap-devgroup:53396 | platform    | Sleep  | 19553 |      | NULL  
| 8352 | root | ucap-devgroup:54794 | platform    | Sleep  | 4245 |      | NULL 
| 8353 | root | ucap-devgroup:54795 | platform    | Sleep  |   3 |      | NULL 
| 8358 | root | ucap-devgroup:62605 | platform    | query  | 4156 | updating | update t_shop set |

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

次に、コマンドの形式は次のとおりです。


kill id; 
- 示例: 
kill 8358

Kill that is Canです。

以上がMysqlのデッドロック問題を解決するためのkillコマンドの使用に関する詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。