投稿

MySQLのスロークエリを手軽に監視する

MySQLのスロークエリを手軽に監視する

MySQLのスロークエリを手軽に監視する

MySQLで実行中の重いクエリをリアルタイムに監視したいときに使うスクリプト。INFORMATION_SCHEMA.PROCESSLISTを3秒おきにポーリングし、実行中のクエリ(INFOがNULLでない行)をタイムスタンプ付きで/tmp/slowquery.logに追記し続ける。スロークエリログの設定を変更できない環境でも手軽に実行中クエリを追える。

How

#!/usr/bin/bash

PASS=input_user_passowrd
HOST=db_host_domain_or_ip
SQL='SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO IS NOT NULL AND INFO not like "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST%"'
while true; do
  echo "=== $(date +"%m/%d %H:%M:%S") =====================" >> /tmp/slowquery.log
  mysql -u root -p$PASS -h $HOST -e "$SQL" >> /tmp/slowquery.log
  sleep 3
done

トレンドのタグ