什么是mysql慢查詢,全稱慢查詢日志
- MySQL的慢查詢日志是MySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢日志中。
- 具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢日志中。long_query_time的默認值為10,意思是運行10秒以上的語句。
- 由他來查看哪些SQL超出了我們的最大忍耐時間值,比如一條sql執行超過5秒鍾,我們就算慢SQL,希望能收集超過5秒的sql,結合explain進行全面分析。
如果不是調優需要的話,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。慢查詢日志支持將日志記錄寫入文件。
分析mysql性能的時候會查看數據庫的哪些sql語句有問題,效率低。
作用就是: 它能記錄下所有執行超過long_query_time時間的SQL語句,幫你找到執行慢的SQL,方便我們對這些SQL進行優化。
show variables like 'slow_query%'; # Variable_name Value slow_query_log ON slow_query_log_file /var/lib/mysql/mysql-slow.log show variables like 'long_query_time'; # long_query_time 10.000000
臨時生效
set global slow_query_log = 1; # 只對當前數據庫生效,如果MySQL重啟后則會失效 set session long_query_time=1; # 對當前連接立刻生效
永久生效
修改配置文件my.cnf, [mysqld]下增加或修改參數 slow_query_log 和slow_query_log_file后,然后重啟MySQL服務器。
【mysqld】下配置: //my.cnf 或者my.ini slow_query_log=1; slow_query_log_file=/var/lib/mysql/atguigu-slow.log long_query_time=3; log_output=FILE
日志分析工具mysqldumpslow, mysqlsla
-s: 是表示按照何種方式排序;
c: 訪問次數 l: 鎖定時間 r: 返回記錄 t: 查詢時間 al:平均鎖定時間 ar:平均返回記錄數 at:平均查詢時間 -t:即為返回前面多少條的數據; -g:后邊搭配一個正則匹配模式,大小寫不敏感的;
mysqldumpslow /var/lib/mysql/mysql-slow.lo # 得到的信息解釋: 主要功能是, 統計不同慢sql的 出現次數(Count), 執行最長時間(Time), 累計總耗費時間(Time), 等待鎖的時間(Lock), 發送給客戶端的行總數(Rows), 掃描的行總數(Rows), 用戶以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).
mysqlsla : https://pan.baidu.com/s/1frrMQCYqP8KlI4VBrc6WfQ 提取碼: 4at2
tar zxvf mysqlsla-2.03.tar.gz #解壓 cd mysqlsla-2.03 #進入安裝目錄 perl Makefile.PL #配置 make #編譯 make install #安裝