有時我們為了定位系統中效率比較低下的Query文法,需要打開慢查詢日志,也就是SlowQuery log。打開慢查詢日志的相關指令如下:
檢視
mysql> showvariables like '%slow%';
+---------------------+-------------------------------------------+
|Variable_name |Value |
|log_slow_queries |ON |
|slow_launch_time |2 |
|slow_query_log |ON |
| slow_query_log_file| /app/mysql-5.5.32/data/localhost-slow.log |
4 rows in set (0.00sec)
mysql> show globalstatus like '%slow%';
+---------------------+-------+
|Variable_name | Value |
| Slow_launch_threads| 0 |
|Slow_queries |0 |
2 rows in set (0.00sec)
打開慢查詢日志可能會對系統性能有一點點影響,如果你的MySQL是主從結構,可以考慮打開其中一台從伺服器的慢查詢日志,這樣既可以監控慢查詢,對系統性能影響也會很小。另外,可以用MySQL自帶的指令mysqldumpslow進行查詢。
比如:下面的指令可以查出通路次數最多的20個SQL語句:
[root@localhost ~]#mysqldumpslow -s c -t 20 /app/mysql-5.5.32/data/localhost-slow.log
注意:
-s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' isdefault
al: average lock time
ar: average rows sent
at: average query time
c: count
l:lock time
r: rows sent
t: query time
-t NUM just show the top n queries
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 鵬愛 51CTO部落格,原文連結:http://blog.51cto.com/pengai/1890364