mysql 慢查询配置

来源:互联网 发布:淘宝卖的奶粉是真的吗 编辑:程序博客网 时间:2024/05/18 02:12

查看你的mysql是否开启了慢查询——

进入mysql终端

show variables like '%slow%';

显示类似如下,表示慢查询已经开启

+---------------------+-------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql/xdadb-slow.log |
+---------------------+-------------------------------+

如果上面显示ON的值为off,就是未开启

show variables like '%long%';

+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+

显示的是mysql配置几秒钟的查询算是慢查询,上面是3秒就归为慢查询


慢查询如何设置——

vim /etc/my.cnf

在[mysqld]下添加

log_slow_queries = on#开启慢查询日志记录
slow_query_log_file = /var/log/mysql/xdadb-slow.log#慢查询日志记录文件,请保证mysql能读写
long_query_time = 3#慢查询阀值


mysql重启——

service mysqld restart


cat  /var/log/mysql/xdadb-slow.log

类似如下

/usr/local/mysql/libexec/mysqld, Version: 5.1.55-log (yes). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 130329 16:06:34
# User@Host: root[root] @ localhost []
# Query_time: 4.001980 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1364544394;
select sleep(4);

上面最后一行select sleep(4),就是超过慢查询阀值的慢查询语句