开启慢查询日志
mysql>show variables like “%slow%”; 查看慢查询配置,没有则在my.cnf中添加
数据库慢查询的查找方法
配置文件中 (/etc/my.cnf)增加
[mysqld]
slow_query_log #打开慢查询
slow_query_log_file=/var/slow.log #指定位置
long_query_time = 0.1 #慢查询记录阀值 单位秒、
mysql慢查询日志(slow_query_log_file)切换
slow_query_log_file日志变得很大,对它进项分析变得很不方便,我们就想按天每天产生一个slow_query_log_file文件,每天分析这个日志文件。如何按天切割呢?我们想到了这么一个办法,把日志格式切换成这种形式的hostname-slow_日期.log 这种形式,默认格式为hostname-slow.log。那么如何实现呢?其实很简单。利用mysql默认命令就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
mysql> show variables
like
'%query%log%'
;
+
---------------------+----------------------------------------+
| Variable_name | Value |
+
---------------------+----------------------------------------+
| slow_query_log |
OFF
|
| slow_query_log_file | /usr/
local
/mysql/data/aeolus1-slow.log |
+
---------------------+----------------------------------------+
mysql>
set
global
slow_query_log_file=
'/usr/local/mysql/data/aeolus1-slow_2013-07-19.log'
;
Query OK, 0
rows
affected (0.03 sec)
mysql> show variables
like
'%query%log%'
;
+
---------------------+---------------------------------------------------+
| Variable_name | Value |
+
---------------------+---------------------------------------------------+
| slow_query_log |
ON
|
| slow_query_log_file | /usr/
local
/mysql/data/aeolus1-slow_2013-07-19.log |
+
---------------------+---------------------------------------------------+
2
rows
in
set
(0.01 sec)
|
ok,设置成功。思路就是这样的
写个shell小脚本,定义好时间,这样就可以按天生成日志了。