Chinaunix首页 | 论坛 | 博客
  • 博客访问: 745615
  • 博文数量: 38
  • 博客积分: 587
  • 博客等级: 中士
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-17 14:32
文章存档

2013年(15)

2012年(23)

分类: Mysql/postgreSQL

2012-04-12 19:30:32

    MySQL慢查询本身不支持ms级别(需要打补丁),但是对MySQL5.1.21+的版本,long_query_time最小值为0(5.1.21之前版本最小为1s),
单位是s,如果指定ms,其ms部分会被忽略;其实这已经是变相支持毫秒级别了,比如查询时间大于100ms将被记录到slow log中;
我们可以设置set global long_query_time=0.1;
测试:
1,直接set global long_query_time=0.1,查询时间大于0.1秒的查询都会被记录到slow log中;设置后,退出重新登录
mysql> set global long_query_time=0.1;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
-bash-3.2$
2, 执行一个查询为0.2s的查询,看此查询是否被记录
mysql> select sleep(0.2);
+------------+
| sleep(0.2) |
+------------+
| 0 |
+------------+
1 row in set (0.21 sec)
# administrator command: Quit;
# Time: 120412 15:39:15
# User@Host: root[root] @ localhost []
# Query_time: 0.202244 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1334216355;
select sleep(0.2);
可见在slow log里已经记录了这个查询
阅读(8301) | 评论(7) | 转发(0) |
给主人留下些什么吧!~~

RogerZhuo2012-04-13 17:23:51

,thanks

夏冰软件2012-04-13 17:07:41

写的不错,支持一下