MYSQL开启慢查询日志

数据库 piniu 1057浏览 0评论

Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来。

一、查看当前服务器是否开启慢查询:

1、快速办法,运行sql语句:show VARIABLES like “%slow%”

mysql> show variables like 'slow%';
+---------------------+---------------+
| Variable_name | Value |
+---------------------+---------------+
| slow_launch_time | 2 |
| slow_query_log | ON | 注:是否打开日志记录
| slow_query_log_file | /tmp/slow.log | 注: 设置到什么位置
+---------------------+---------------+
3 rows in set (0.00 sec)

2、直接去my.conf中查看。

二、开启慢查询功能

mysql> show variables like 'long%'; 注:这个long_query_time是用来定义慢于多少秒的才算“慢查询”
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

	
mysql> set global long_query_time=1; 注: 我设置了1, 也就是执行时间超过1秒的都算慢查询。
Query OK, 0 rows affected (0.00 sec)

mysql> set global log_slow_queries = ON;
Query OK, 0 rows affected (0.00 sec)

mysql> set global slow_query_log='ON' 注:打开日志记录 

一旦slow_query_log变量被设置为ON,mysql会立即开始记录。

2。 也可以在 my.conf 中的配置,要放在 [mysqld]块下方:

[mysqld]
 
log_output=FILE
log_slow_queries = ON
slow_query_log = ON
log_queries_not_using_indexes = ON
log-slow-queries = /usr/local/mysql/var/slowquery.log
long_query_time = 1 #单位是秒

慢查询日志文件的信息格式:

# Time: 130905 14:15:59 时间是2013年9月5日 14:15:59(前面部分容易看错哦,乍看以为是时间戳)
# User@Host: root[root] @ [183.239.28.174] 请求mysql服务器的客户端ip
# Query_time: 0.735883 Lock_time: 0.000078 Rows_sent: 262 Rows_examined: 262 这里表示执行用时多少秒,0.735883秒,1秒等于1000毫秒

SET timestamp=1378361759; 这目前我还不知道干嘛用的
show tables from test_db; 这个就是关键信息,指明了当时执行的是这条语句

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • *昵称:
  • *邮箱: