mysql慢查詢


什么是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  #安裝

 


免責聲明!

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



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