前言:慢查詢日志是MySQL提供的一種日志記錄,它記錄MySQL中響應時間超過閾值的語句,具體指運行時間超過long_query_time值的sql語句,該sql語句會被記錄到慢查詢日志中。慢查詢日志主要與explain進行聯合分析。
1.如何開啟慢查詢日志
默認情況下,MySQL數據庫沒有開啟慢查詢日志,需要我們手動來設置這個參數。如果不是調優需要,一般不建議開啟該參數,因為開啟慢查詢日志或多或少會帶來一定的性能影響。
#1.首先查看慢查詢日志是否開啟。
注:Value為OFF表示關閉,筆者已經將慢查詢日志開啟,所以Value顯示為ON。
#2.使用如下命令開啟慢查詢日志。
注:使用該命令開啟慢查詢只對當前數據庫生效,MySQL重啟失效,如果要配置長期有效,請在my.cnf中進行配置。
2.慢查詢的相關參數
#1.查看慢查詢的閾值時間,該值有long_query_time控制。默認情況下為10秒。
注:假如sql語句的運行時間正好等於long_query_time時,sql並不會被記錄下來,因此判斷慢查詢是sql的執行時間大於long_query_time,而不是大於等於。
#2.設置long_query_time的值。
當設置long_query_time值后,查看其值並沒有變化,解決方式:
①關閉當前連接,重新開一個新的連接。
②使用如下命名。
#3.查看慢查詢sql的數目。筆者已執行了兩次select sleep(9)命令。
查看慢查詢日志文件:
從文件中可看到兩條select sleep(9)語句。
3.使用mysqldumpslow分析慢查詢日志文件
因為直接分析日志文件是個體力活,因此mysql為我們提供了相關工具mysqldumpslow來對慢查詢日志文件進行分析。
具體使用方式可用mysqldumpslow --help命令查看具體參數,或參考:http://www.cnblogs.com/moss_tan_jun/p/6603766.html
by Shawn Chen,2018.6.26日,下午。