なんらかの理由で MySQLにクソ重いクエリがたくさん流れてしまった場合、SHOW
PROCESSLISTをみて、クエリをKILLするなんてことは、あったりなかったりします。
この時にクエリが数十個となると、手作業ではやりきれませんので、コマンドを駆使して対応することになります。
ちょっと前にやったのが以下のコマンド
/usr/bin/mysql --defaults-extra-file=/path/to/.my-other.cnf -NB -e 'SELECT GROUP_CONCAT(ID) FROM \
information_schema.PROCESSLIST WHERE STATE = "Creating sort index" AND TIME > 1000 AND INFO \
LIKE "select%example%"' | grep -v NULL | /usr/bin/xargs -r /usr/bin/mysqladmin --defaults-extra-file=/path/to/.my-other.cnff kill
mysqladmin killは複数個のidを受け取れるのでGROUP_CONCATが使うのがおしゃれですね
…
[さらに読む]