慢日志之一:開啟mysql慢查詢日志並使用mysqldumpslow命令查看,分析診斷工具之四


一、查看慢日志是否開啟

mysql> show variables like "%slow%";
+---------------------------+-------------------------------+
| Variable_name             | Value                         |
+---------------------------+-------------------------------+
| log_slow_admin_statements | OFF                           |
| log_slow_slave_statements | OFF                           |
| slow_launch_time          | 2                             |
| slow_query_log            | OFF                           |
| slow_query_log_file       | /var/lib/mysql/cmos1-slow.log |
+---------------------------+-------------------------------+
5 rows in set (0.01 sec)

二、開啟和關閉

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.07 sec)

慢日志閾值設置:

mysql> show variables like "%long_query_time%";
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.01 sec)

mysql> 

 

mysql> set global long_query_time=4;
Query OK, 0 rows affected (0.00 sec)

mysql> 

 

三、查看慢日志內容

long_query_time = 1 #定義超過1秒的查詢計數到變量Slow_queries。
log-slow-queries = /usr/local/mysql/data/slow.log #定義慢查詢日志路徑。
log-queries-not-using-indexes #未使用索引的查詢也被記錄到慢查詢日志中(可選)。
mysql自帶了一個查看慢日志的工具mysqldumpslow。
執行mysqldumpslow –h可以查看幫助信息。
主要介紹兩個參數-s和-t
-s 這個是排序參數,可選的有:
al: 平均鎖定時間
ar: 平均返回記錄數
at: 平均查詢時間
c: 計數
l: 鎖定時間
r: 返回記錄
t: 查詢時間

-t n 顯示頭n條記錄。
實例:
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出訪問次數最多的20個sql語句和返回記錄集最多的20個sql。
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
這個是按照時間返回前10條里面含有左連接的sql語句。
用了這個工具就可以查詢出來那些sql語句是性能的瓶頸,進行優化,比如加索引,該應用的實現方式等。

 

使用mysqldumpslow 查看文件的方式查看:

[root@cmos1 ~]# mysqldumpslow -s c -t 20 /var/lib/mysql/cmos1-slow.log

 

linux下直接用查看文件的方式查看:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM