pt-query-digest 是用於分析mysql慢查詢的一個工具,與mysqldumpshow工具相比,py-query_digest 工具的分析結果更具體,更完善。php
有時由於某些緣由如權限不足等,沒法在服務器上記錄查詢。這樣的限制咱們也經常碰到,因此開發了兩種替代的技術,都集成到了Percona Toolkit 中的 pt-query-digest 中。html
第一種是經過 --processlist 選項不斷查看 SHOW FULL PROCESSLISTR 的輸出,記錄查詢第一次出現的時間和消失的時間。某些狀況下這樣的精度也足夠發現問題,但卻沒法捕獲全部查詢。一些執行較快的查詢可能在兩次執行的間隙就執行完成了,從而沒法捕獲到。mysql
第二種是經過抓取TCP網絡包,而後根據MYSQL的客戶端/服務端通訊協議進行解析。能夠先經過 tcpdump 將網絡包數據保存到磁盤,而後使用 pt-query-digest 的 --type=tcpdump 選項來解析並分析查詢。此方法的精度比較高,而且能夠捕獲全部的查詢。還能夠解析更高級的協議特性,好比能夠解析二進制協議,從而建立並執行服務器端預解析的語句(prepared statement)及壓縮協議。另外還有一種方法,就是經過MYSQL Proxy 代理層的腳原本記錄全部查詢,但在實踐中咱們不多這樣作。git
在個人 mysql/bin 文件夾裏並無 pt-query-digest.pl 文件,而且要想在windows中支持perl文件,得先安裝 perl 支持,安裝方法可查看 慢查詢日誌分析工具之mysqldumpslow。接下來在 mysql/bin 文件夾下打開 git bash窗口,輸入命令:sql
curl -o pt-query-digest.pl https://www.percona.com/get/pt-query-digestwindows
進度爲100%表示下載完成,可使用命令驗證: perl pt-query-digest.pl --helpbash
具體使用方法請查看 http://www.php.cn/mysql-tutorials-357655.html服務器