MySQL スロークエリログについて

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

実行に時間がかかったクエリを記録する機能になります。

遅いクエリを見つけて、パフォーマンスの改善に役立てましょう。

【設定方法】
●MySQL5.0系まで
① my.cnfにて下記のパラメータを設定してください。
※my.cnfに記載しただけでは反映されません。MySQL再起動もしくはset globalでの設定が必要です。
log-slow-queries :
long_query_time : 指定した秒数以上かかったクエリを記録(default 10秒)

例)/etc/my.cnf
[mysqld] log-slow-queries = /var/lib/mysql/slow_query.log
long_query_time = 3
●MySQL5.1系以上
① my.cnfにて下記のパラメータを設定してください。
※my.cnfに記載しただけでは反映されません。MySQL再起動もしくはset globalでの設定が必要です。

slow_query_log : スロークエリログの有効/無効を設定 0(または OFF)で無効、1(または ON)が有効
slow_query_log_file : ログ出力先ファイル名
long_query_time : 指定した秒数以上かかったクエリを記録(default 10秒)
※MySQL5.1からは1秒未満の設定可能

例)/etc/my.cnf
[mysqld] …
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow_query.log
long_query_time = 3
② set globalを使って設定を変更
$ mysql -uユーザ名 -p データベース名
Enter password: [パスワード]

set global slow_query_log = 1;
set global slow_query_log_file = ‘/var/lib/mysql/slow_query.log’;
set global long_query_time = 3;
【備考】
インデクスを使用しないクエリを記録する場合は、「log_queries_not_using_indexes」を有効にしてください。

投稿者プロフィール

ito
プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。

現在、サーバ・ネットワークいろいろと奮闘中です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。 現在、サーバ・ネットワークいろいろと奮闘中です。