pt-query-digest是Percona Toolkit工具集中常用的一个工具,其能够分析MySQL的slowlog,general log,binlog文件,同时也可以使用show processlist或者tcpdump抓取的MySQL协议数据进行分析。
安装Toolkit
下载最新工具包
安装依赖
|
|
安装Toolkit
|
|
pt-query-digest常用参数
参数 | 说明 |
---|---|
–host | mysql主机 |
–port | mysql端口 |
–user | mysql用户 |
–password | MySQL用户密码 |
–filter | 对慢查询进行条件过滤 |
–limit | 限制输出结果百分比或数量,默认是最慢的20条记录 |
–history | 将分析结果保存到表中,分析结果比较详细,下次再使用–history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同一CHECKSUM来比较某类型查询的历史变化 |
–review | 将分析结果保存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单。当下次使用–review时,如果存在相同的语句分析,就不会记录到数据表中。 |
–create-review-table | 当使用–review参数把分析结果输出到表中,如果没有表就自动创建 |
–create-history-table | 当使用–history参数把分析结果输出到表中,如果没有表就自动创建 |
–output | 分析结果输出类型,值可以是report(标准分析报告)、slowlog(Mysql slow log)、json、json-anon,一般使用report,以便于阅读 |
–since | 从什么时间开始分析,值为字符串,可以是指定的某个”yyyy-mm-dd [hh:mm:ss]”格式的时间点,也可以是简单的一个时间值:s(秒)、h(小时)、m(分钟)、d(天),如12h就表示从12小时前开始统计。 |
–until | 截止时间,配合–since形成一个范围查询 |
示例
分析整个slowlog
|
|
分析近12个小时的slowlog
|
|
分析指定范围的slowlog
|
|
分析带有select的慢查询
|
|
分析指定用户的慢查询
|
|
分析全表扫和full join的慢查询
|
|
把分析结果保存到review表
|
|
把分析结果保存到history表
|
|
通过tcpdump抓取mysql协议数据并分析
|
|
分析指定binlog
|
|
分析gerneral log
|
|
结果分析
|
|
分析报告分为三个部分:
- 第一部分为总体统计结果,overall表示查询数量;time range为时间范围;unique为唯一查询数量,95%表示把所有值从小到大排列,位置位于95%的那个数;median表示中位数
- 第二部分为分组统计结果,rank为所有语句的排名,默认按查询时间降序,通过–order-by指定;reponse为总的响应时间;time为分析时间占比;calls执行次数;R/CALL平均响应时间
- 第三部分为每条SQL的详细分析结果