MySQLのログ

最近、負荷対策関連のことをやることが多いんですが……

binlog(バイナリーログ) …… 詳細なログが残る。実行タイムは残らない。更新系のSQLしか残らない。
general_log_file(通常ログ) …… SELECT系のログも残る。実行タイムは残らない。
slow_query_log_file(スロークエリ) …… 時間がかかったものはとりあえず残る。時間がかからないと残らない。実行タイムは残る。

で、全SQLの実行タイムを残したい場合ですが……

バージョンにも依るかもしれませんが、止めずに設定できるんですね。

set global slow_query_log = 1;
set global slow_query_log_file = '/path/to/slow.log';
set global long_query_time = 0;

これで良い、と思ったら、翌日になったら設定が戻っていた。
ログローテートでプロセスの再起動がかかって、my.cnfの値に戻るのね。

カテゴリー: MySQL パーマリンク

コメントを残す

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