スタッフブログ

  • 最新配信
  • RSS

MySQL5.1で遅いクエリーのログを取る

suin : 技術全般 2010/10/21 13:12

Blogger's Avatar

MySQLには遅いクエリーを改善するために、指定した秒数以上かかったクエリーをログに取っておいてくれる機能があります。それをスロークエリーログといいます。この記事では、スロークエリーログを有効にして、実際に作られたログを確認するところまで順を追って説明します。

ひとまずrootになる。

sudo su - root
# とか
su - root

MySQLの設定ファイルを編集します。

vim /etc/my.cnf
# vim: command not foundな人は vi /etc/my.cnf

iとタイプして編集モードへ。

slow_query_log=1 # スロークエリーログを有効にします。ONとかOnと書いても有効にならないので注意。
slow_query_log_file=mysql-slow.log # フルパスじゃないとたぶん、datadirにできます。
long_query_time=1 # 秒数で指定。この例では1秒以上かかるクエリはログに残る

escキーを押して、:wqとタイプ後Enterで上書き保存

MySQLの再起動を忘れずに。

/etc/rc.d/init.d/mysqld restart

MySQLにログインしてみよう。

mysql -u root
# とか
mysql -u root -p

2秒かかるクエリーを実行してみる。

mysql> SELECT SLEEP(2);
+----------+
| SLEEP(2) |
+----------+
|        0 |
+----------+
1 row in set (2.00 sec)

MySQLから抜けます。

mysql> exit

slow_query_log_fileがあるディレクトリに移動。

cd /var/lib/mysql/

中身を見てみよう。

cat mysql-slow.log

# Time: 101021 13:04:49
# User@Host: root[root] @ localhost []
# Query_time: 2.002632  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1287633889;
SELECT SLEEP(2);

ちゃんとログが取れてるのが確認できました。

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.