MySQL慢查詢支持毫秒的設置
MySQL慢查詢本身不支持ms級別(需要打補丁),但是對MySQL5.21+的版本,long_query_time最小值為0(5.2.1之前版本最小為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); www.2cto.com
+------------+
| 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裡已經記錄了這個查詢
作者 RogerZhuo