慢查询日志

慢查询日志记录了所有执行时间超过参数long_query_time(单位:秒)设置值并扫描记录数不小于min_examined_row_limit的所有sql语句的日志,long_query_time默认是10秒,最小为0秒,精度可以到微秒

在默认情况下,有两类常见语句不会被记录到慢查询日志,管理语句和不使用索引进行查询的语句,这里的管理语句包括alter table ,analyze table ,check table,create index,drop index,optimize table 和repair table,如果要监控这两类语句,可以分别通过参数--log-slow-admin-statements和log_queries_not_using_indexes进行控制

 

文件位置和格式

慢查询日志默认是关闭的,在mysql5.1.29之前,当用--log-slow-queries=[file_name]选项启动mysqld的时候,慢查询日志开始被记录,和前面几种日志一样,如果没有给定file_name的值,日志将写入参数datadir指定的路径下,默认文件名是host_name-slow.log

在mysql5.1.29之后,--log-slow-queries已经不推荐使用,而采用两个新的参数来替换,使用--slow-query-log={0|1}显示指定慢查询的状态,如果不指定值或者值为1,都会打开慢查询,使用slow_query_log_file=[file_name]来指定满查询日志的路径,另外,如果所述,还可以使用--log-output参数来指定日志的输出方式,默认会输出到文件,当然也可以选择输出到表,需要注意的是,如果选择输出到表,则表中记录的慢查询的时间只能精确到秒,而日志文件中可以精确到微妙。

查询一下long_query_time的值

mysql> show variables like 'long%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

posted on 2014-08-26 10:40  zitong  阅读(284)  评论(0编辑  收藏  举报