Linux好用的SQL工具(四)

你對於正在運行的mysql

性能如何?參數設置的是否合理?賬號設置的是否存在安全隱患?

是否瞭然於胸?

俗話說工欲善其事,必先利其器,定期對你的MYSQL數據庫進行一個體檢,是保證數據庫安全運行的重要手段。

今天和大家分享一個mysql 優化的工具,你可以使用它們對你的mysql進行一個體檢,生成awr報告,讓你從整體上把握你的數據庫的性能情況。

pt-qurey-digest

pt-query-digest主要功能是從日誌、進程列表和tcpdump分析MySQL查詢

1.安裝

具體參考Linux好用的SQL工具(三)

2.使用

pt-query-digest主要用來分析mysql的慢日誌,與mysqldumpshow工具相比,py-query_digest 工具的分析結果更具體,更完善。

終端執行:pt-query-digest /var/lib/mysql/slowtest-slow.log

3.常用用法分析

1)直接分析慢查詢文件:

pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log

2)分析最近12小時內的查詢:

pt-query-digest --since=12h /var/lib/mysql/slowtest-slow.log > slow_report2.log

3)分析指定時間範圍內的查詢:

pt-query-digest /var/lib/mysql/slowtest-slow.log --since '2020-01-07 09:30:00' --until '2020-01-07 10:00:00'> > slow_report3.log

4)分析只含有select語句的慢查詢:

pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' /var/lib/mysql/slowtest-slow.log> slow_report4.log

5)針對某個用戶的慢查詢:

pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' /var/lib/mysql/slowtest-slow.log> slow_report5.log

6)查詢所有的全表掃描或full join的manchaxun:

pt-query-digest --filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' /var/lib/mysql/slowtest-slow.log> slow_report6.log

4.報告分析

第一部分:總體統計結果 Overall:總共有多少條查詢 Time range:查詢執行的時間範圍 unique:唯一查詢數量,即對查詢條件進行參數化以後,總共有多少個不同的查詢 total:總計 min:最小 max:最大 avg:平均 95%:把所有值從小到大排列,位置位於95%的那個數,這個數一般最具有參考價值 median:中位數,把所有值從小到大排列,位置位於中間那個數。

第二部分:查詢分組統計結果 Rank:所有語句的排名,默認按查詢時間降序排列,通過–order-by指定 Query ID:語句的ID,(去掉多餘空格和文本字符,計算hash值) Response:總的響應時間 time:該查詢在本次分析中總的時間佔比 calls:執行次數,即本次分析總共有多少條這種類型的查詢語句 R/Call:平均每次執行的響應時間 V/M:響應時間Variance-to-mean的比率 Item:查詢對象。

第三部分:每一種查詢的詳細統計結果 ID:查詢的ID號,和上圖的Query ID對應 Databases:數據庫名 Users:各個用戶執行的次數(佔比) Query_time distribution :查詢時間分佈, 長短體現區間佔比。Tables:查詢中涉及到的表 Explain:SQL語句。

日常分享一個好用的小工具,希望有更好的資源的小夥伴可以多多分享交流,感謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章