処理に時間がかかっているクエリを調べる
MySQLでは、SHOW PROCESSLISTステートメントを使って現在実行中のスレッドを確認できます。
このコマンドは、各スレッドのID、ユーザー名、実行中のクエリなど、重要な情報を提供します。
Infoフィールドでは、クエリの最初の100文字が表示されます。
すべてのクエリを表示するには、SHOW FULL PROCESSLISTを使用します。
mysql> show processlist;
+---------+-----------------+------------+-------+---------+---------+------------------------+----------
| Id | User | Host | db | Command | Time | State | Info
+---------+-----------------+------------+-------+---------+---------+------------------------+----------
| 5483780 | admin | localhost | my_db | Execute | 490 | executing | select ...
この例では、Idが5483780のスレッドが490秒間実行中であることがわかります。
これは、パフォーマンスの問題を引き起こしている可能性があります。
処理に時間がかかっているクエリを強制終了する
長時間実行中のクエリを強制終了するには、KILL processlist_id ステートメントを使用します。
このコマンドは、指定したプロセスIDのスレッドを即座に終了させます。
Idが5483780のスレッドを終了する場合は、以下のようにします。
mysql> kill 5483780;