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服务器