サーバー管理の現場において今まで役に立ったことをまとめた小ネタ集です。お役に立てれば幸いです。なお、不完全な情報や時代遅れになってしまった情報もあるかもしれませんが何卒ご了承ください。

MySQL : サイトが重い時の原因調査(MySQL編)

作業例(CentOS6の例)

サイトが重い時、MySQLが原因なのかどうかを確認する方法です。実行に指定時間以上かかっているSQLを特定できます。

対処例(CentOS6での例)

スローログの設定をしましょう。
/etc/my.cnf の [mysqld] の中に以下のように追記してください。


[mysqld]
・・・(略)・・・
slow_query_log=1
long_query_time=1
slow_query_log_file=/var/log/slowsql.log
log-queries-not-using-indexes=1
・・・(略)・・・
[mysqld_safe]

※long_query_timeは秒数で、それ以上かかったSQLをログに記録します。
※MySQLのバージョンは5.6で確認済です。バージョンによっては文法が若干違うようですので注意してください。
MySQLを再起動しましょう。
CentOS6なら、
/etc/rc.d/init.d/mysqld restart
CentOS7なら、
systemctl restart mysqld
等、環境に合わせて再起動してください。