慢查詢


慢查詢日志,顧名思義,就是查詢慢的日志,是指mysql記錄所有執行超過long_query_time參數設定的時間閾值的SQL語句的日志。該日志能為SQL語句的優化帶來很好的幫助。默認情況下,慢查詢日志是關閉的,要使用慢查詢日志功能,首先要開啟慢查詢日志功能。

慢查詢基本配置

 slow_query_log 啟動停止技術慢查詢日志

slow_query_log_file 指定慢查詢日志得存儲路徑及文件(默認和數據文件放一起)

 long_query_time 指定記錄慢查詢日志SQL執行時間得伐值(單位:秒,默認10秒)

log_queries_not_using_indexes  是否記錄未使用索引的SQL

 log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】

 

配置了慢查詢后,它會記錄符合條件的SQL

包括:

 查詢語句

數據修改語句

 已經回滾得SQL

 

show VARIABLES like '%slow_query_log%'

show VARIABLES like '%slow_query_log_file%'

show VARIABLES like '%long_query_time%'

show VARIABLES like '%log_queries_not_using_indexes%'

show VARIABLES like 'log_output'


set global long_query_time=0;   ---默認10秒,這里為了演示方便設置為0 

set GLOBAL  slow_query_log = 1; --開啟慢查詢日志

set global log_output='FILE,TABLE'  --項目開發中日志只能記錄在日志文件中,不能記表中


設置完成后,查詢一些列表可以發現慢查詢的日志文件里面有數據了。

  

 

 

 

 

 

 

第一行:用戶名 、用戶的IP信息、線程ID號

第二行:執行花費的時間【單位:毫秒】

第三行:執行獲得鎖的時間

第四行:獲得的結果行數

第五行:掃描的數據行數

第六行:這SQL執行的具體時間

第七行:具體的SQL語句

 

慢查詢分析 

     慢查詢分析工具 

   Mysqldumpslow  

常用的慢查詢日志分析工具,匯總除查詢條件外其他完全相同的SQL,並將分析結果按照參數中所指定的順序輸出。

mysqldumpslow -s r -t 10 slow-mysql.log
-s order (c,t,l,r,at,al,ar) 
         c:總次數
         t:總時間
         l:鎖的時間
         r:總數據行
         at,al,ar  :t,l,r平均數  【例如:at = 總時間/總次數】

  -t  top   指定取前面幾天作為結果輸出

mysqldumpslow.pl -s t -t 10 D:\test-slow.log

 

 

 

 pt_query_digest

 

是用於分析mysql慢查詢的一個工具,與mysqldumpshow工具相比,py-query_digest 工具的分析結果更具體,更完善。

 

有時因為某些原因如權限不足等,無法在服務器上記錄查詢。這樣的限制我們也常常碰到。

  

 perl .\pt-query-digest  --explain h=127.0.0.1,u=root,p=root1234% D:\test-slow.log

 

 

 

 


免責聲明!

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



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