pt-query-digest 慢日志分析工具:可以分析的日志包括MySQL记录的日志(二进制日志,慢日志等)、processlist和TCPdump数据。
一、Usage使用方法
pt-query-digest [OPTIONS] [FILES] [DSN]
pt-query-digest具有两个功能:查询查看(–review)和查询历史(–history)。
当使用该–review 选项时,所有唯一查询将保存到数据库中。当该工具再次运行时–review,数据库中标记为已审阅的查询不会打印在报告中。这突出了需要审查的新查询。
使用该–history选项时,每个唯一查询的查询度量标准(查询时间,锁定时间等)将保存到数据库中。每次使用该工具时–history,都会保存更多的历史数据,以便随着时间推移趋势和分析查询性能。
pt-query-digest处理事件,这是一组称为属性的键值对。您可识别出大部分属性: Query_time,Lock_time等等
二、输出报告
第一部分:总体统计信息
Overall: 总共有多少条查询,上例为总共266个查询。
Time range: 查询执行的时间范围。
unique: 唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询,该例为55。
total: 总计 min:最小 max: 最大 avg:平均
95%: 把所有值从小到大排列,位置位于95%的那个数,这个数一般最具有参考价值。
median: 中位数,把所有值从小到大排列,位置位于中间那个数。
第二部分:查询分组统计信息
Response: 总的响应时间。
time: 该查询在本次分析中总的时间占比。
calls: 执行次数,即本次分析总共有多少条这种类型的查询语句。
R/Call: 平均每次执行的响应时间。
Item : 查询对象
第三部分:每一unique查询的详细信息
Databases: 库名
Users: 各个用户执行的次数(占比)
Query_time distribution : 查询时间分布, 长短体现区间占比,本例中1s-10s之间查询数量是10s以上的两倍。
Tables: 查询中涉及到的表
Explain: 示例
三、使用示例
直接分析慢查询文件
pt-query-digest slow.log > slow_report.log
分析最近12小时内的查询
pt-query-digest --since=12h slow.log > slow_report.log
分析指定时间范围内的查询:
pt-query-digest slow.log --since '2017-04-20 09:40:00' --until '2018-01-14 12:00:00'> > slow_report.log