mysql で遅いクエリを調べる方法のメモ。
show processlist で実行中のクエリを見ることはできますが、
実行時間順にソートされていません。
performance DBの threads テーブルに対して、processlist_time でソートすると
実行時間順でソートした検索ができます。
遅いクエリを終了させたければ、PROCESSLIST_ID を指定して kill すればOKです。
show processlist で実行中のクエリを見ることはできますが、
実行時間順にソートされていません。
performance DBの threads テーブルに対して、processlist_time でソートすると
実行時間順でソートした検索ができます。
mysql> select * from performance_schema.threads order by processlist_time asc\G *************************** 1. row *************************** THREAD_ID: 3533337 NAME: thread/sql/one_connection TYPE: FOREGROUND PROCESSLIST_ID: 3533304 ★★★ PROCESSLIST_USER: XXXXXXXX PROCESSLIST_HOST: XXX.XXX.XXX.XXX PROCESSLIST_DB: XXXXXXXXXXXXX PROCESSLIST_COMMAND: Query PROCESSLIST_TIME: 1540 ★★★ PROCESSLIST_STATE: Creating sort index PROCESSLIST_INFO: ... ...
遅いクエリを終了させたければ、PROCESSLIST_ID を指定して kill すればOKです。
mysql> kill 3533304;