標籤:
mysql 5.6 開啟慢查詢日誌
slow_query_log = on #開啟慢查詢 1 或者 onlong_query_time = 3 #記錄超過的時間,單位是秒,預設是10sslow_query_log_file = /data/mysql/dev-service-node2-slow.log #指定記錄檔存放位置,可以為空白,系統會給一個預設的檔案host_name-slow.loglog_queries_not_using_indexes = true #如果啟用了慢查詢日誌,則此變數將控制那些不使用索引的查詢是否應該被記錄。如果進行記錄,將使得記錄檔迅速變得較大。針對這個參數,在官方文檔中還描述了一種比較特殊的情況:This option does not necessarily mean that no index is used. For example, a query that usesa full index scan uses an index but would be logged because the index would not limit the number of rows.
查詢慢查詢出現的次數;
show status like ‘Slow_queries‘;
查看慢查詢日誌:
如果慢查詢日誌中的記錄內容很多,可以使用mysqldumpslow工具,對慢查詢日誌進行分類匯總。
mysqldumpslow是mysql資料庫內建的工具
執行:
mysqldumpslow -a -s t -t 7 /data/mysql/dev-service-node2-slow.log
這條命令會輸出執行時間最長的7條sql語句。
這條命令中各個參數的意義:
-s, 是表示按照何種方式排序,c、t、l、r分別是按照語句query次數、query time、lock time、rows sent的總數來排序,
at、al、ar則是以query time、lock time、rows sent的平均值來排序;
-t, 是top n的意思,即返回排序在最前面的多少條sql語句。
-g ,後邊可以寫一個正則匹配模式,大小寫不敏感的;
#mysqldumpslow -a -s t -t 7 /data/mysql/dev-service-node2-slow.log
#輸出參數解釋:
Count: 15831 Time=8.46s (133943s) Lock=0.00s (7s) Rows=578.3 (9154400)
Count: 此語句執行了15831次
Time : 8.46s 是該語句執行的平均時間(有的說是執行的最長時間) 。(133943s) 是該語句執行時間的總和
Lock: 即是lock time 等待鎖的時間
Rows: 即是rows sent , 578.3 表示發送給用戶端的行總數 。 (9154400) 表示掃描的行總數
mysql 5.6 設定慢查詢