MySQL5.1でmysql-slow.logを出力する

プログラミング
Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

あちこちに書いてあったのを試してみましたが、以下の書き方で出力されました

CentOS6
mysql5.1.61

/etc/my.cnfに追記

log_slow_queries
long_query_time = 1
slow_query_log_file=/var/log/mysqld/mysql-slow.log

indexが効いてないクエリを抽出したい場合はこれを足す

log-queries-not-using-indexes

ものすごい勢いで書き込まれるので負荷がすごいです
書きっぱなしにするのはやめた方がいいでしょう

slow-queryを見る

mysqldumpslow -s t /var/log/mysqld/mysql-slow.log

logrotateも設定しておく

slowlogはすごい量が記録されてしまうので、logrotateも設定しておきます

/etc/logrotate.d/mysqld

/var/log/mysqld/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service mysqld reload > /dev/null 2>/dev/null || true
    endscript
}

httpdをコピーして、mysqldに書き直しただけです

参考リンク

処理が遅いSQL文をログとして出力する | Linuxで自宅サーバ構築
MySQLのスロークエリログから一部を切り出して分析するパッチ – SH2の日記
MySQL5.1のlog出力とlogrotate設定 | ijo.cc

5.5を触っているつもりが5.1だったので色々混乱したっていう話なのでした

コメント

タイトルとURLをコピーしました