MySQL高級知識(九)——慢查詢日志


前言:慢查詢日志是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日,下午。


相關內容

MySQL高級知識系列目錄


免責聲明!

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



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