mysql slow log 之micro slow(记录微秒级慢查询)

ZDNet软件频道 时间:2009-12-01 作者: | 甄焱鲲的博客 我要评论()
本文关键词:MySQL
最近一直纠结在mysql的性能问题上,于是重操旧业,研究起了slow log
最近一直纠结在MySQL的性能问题上,于是重操旧业,研究起了slow log

MySQL打开slow log只要在配置项添加

log-long-format
log-slow-queries = /data/dbdata/slow-query.log
long_query_time = 1

就可以在slow-query.log文件中看到所有执行时间超过1秒或者没有用到索引的查询语句,一般的格式如下:

# Time: 091109 22:02:14

# User@Host: root[root] @ [172.16.219.15]

#Query_time: 3Lock_time: 0 Rows_sent: 0 Rows_examined: 0

SET timestamp=1257775334;

insert into DS_Calc_Innodb_38.t_calc_30000 (PolicyID,sspkey,value,strvalue,updatetime,updatestate ,seqnum) values(30010,'79495341',0

,'0',Now(),2,'');

根据这个日志我们可以看到,这个insert语句执行时间为3秒,有具体的执行时间、IPSQL语句,对分析性能问题非常有帮助。

可惜最小的slow时间是1秒,而最近遇到的问题是有比较多的几百毫秒的超时,这个slow log就无能为力了,在印象中MySQL有个micro slow patch,于是google之,果不出所料,在MySQL performanceblog上看到有相关介绍,详见http://www.MySQLperformanceblog.com/2006/10/01/backport-of-micro-time-patch-to-MySQL-41/

于是直接弄下来打上补丁,果然很好用。具体实施方法如下:

1、找到相应版本的补丁,如我的MySQL4.1.16版本的,下载相应的patch,这个是4.1.21patch,在4.1.16上一样适用

2、找到4.1.16的源码,如我的目录是/home/quency/MySQL-4.1.16,进到相应的目录,把patch文件拷进来,执行:patch –p1 < patch.slow-micro.4.1.21.diff;提示补丁打成功,注意有无错误提示

3、重新编译MySQL并安装,执行:./configure –prefix=/usr/local/MySQL;make;make install

4、修改配置设置long_query_time = 100000 (这个是以微秒为单位的,此处设置100ms)

5、启动MySQL,查看是否生效how variables like ‘long_query_time’

MySQL> show variables like 'long_query_time';

+-----------------+----------+

| Variable_name   | Value    |

+-----------------+----------+

| long_query_time | 0.100000 |

+-----------------+----------+

1 row in set (0.00 sec)

搞定!slow log里记录类似如下日志:

# Time: 091112 9:03:43 # User@Host: root[root] @ [172.16.219.15]

#Query_time: 0.350958Lock_time: 0.000020 Rows_sent: 0 Rows_examined: 0

insert into DS_Calc_Innodb_22.t_calc_30000 (PolicyID,sspkey,value,strvalue,updatetime,updatestate ,seqnum) values(30006,'1256145936|

MP200910260001',0,'0',Now(),2,'');

可以看到以上sql语句执行时间为350毫秒。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134