mysql慢速查询

linux下配置慢查询:

修改my.cnf文件,在[mysqld]模块下添加

#slow_query_log=1 有些人说这个是slow_query的开关,但是我加上以后提示错误。
log_slow_queries=/data/slowquery.log long_query_time=1

重启mysql。

测试慢查询,可以在用mysql连接mysql,运行:

select sleep(2);

查看 /data/slowquery.log ,有类似如下结果:

# Time: 121120 20:06:23
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 2.104120  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1353413183;
select sleep(2);

说明成功了。

/**************************/

注意在long_query_time配置的时候,如果不是整数会提示错误。

如果确实需要配置非整数,可以在mysql控制台执行:

set global long_query_time=0.1

要重启mysql才会生效。【本人测试失败】

ERROR 1232 (42000): Incorrect argument type to variable 'long_query_time'。如果设置为1可以成功。

配置完以后,要查看配置状态:

查看MySQL服务器配置信息 :show variables ;

显示一个两个参数,一个是slow_launch_time,一个是long_query_time。slow_launch_time跟慢查询日志没有任何关系, 它代表的是thread create的一个阈值。

查看MySQL服务器运行的各种状态值 : show global status;  

可以用 show variables like '%slow%';过滤你感兴趣的值。

总结一下:

  1. 配置的时候,无法配置成小于1s的查询为慢查询。
  2. 不要把slow_launch_time和long_query_time混淆。

再附一个链接:http://lxneng.iteye.com/blog/451985 里面对过滤说的很详细。但是混淆了两个配置项。

如果感觉不错,请 一个!
by simpman
原文地址:https://www.cnblogs.com/simpman/p/3286935.html