pt-query-digest 剖析来自慢速日志文件,惯例日志文件和二进制日志文件的 MySQL 查问。它还能够剖析来自 tcpdump 的查问和 MySQL 协定数据。
开启慢日志
set global slow_query_log=on;
set global slow_query_log_file='/data/logs/mysql/mysql_slow.log';
下载安装
yum install percona-toolkit-3.0.3-1.el7.x86_64.rpm
下载地址:https://www.percona.com/downloads/percona-toolkit/3.0.3/
举荐用法
查问保留到 query_history 表查看慢 sql,数据结构清晰,不便剖析,不便与其余系统集成。
pt-query-digest --user=root --password=epPfPHxY --history h=10.8.8.66,D=testDb,t=query_review--create-history-table mysql_slow.log --since '2020-10-01 09:30:00' --until '2020-10-21 18:30:00'
常见用法
间接剖析慢查问文件
pt-query-digest slow.log > slow_report.log
剖析某个用户的慢 sql
pt-query-digest --filter '($event->{user} ||"") =~ m/^root/i' slow.log
剖析某个数据库的慢 sql
pt-query-digest --filter '($event->{db} ||"") =~ m/^sonar/i' slow.log
剖析某段时间内的慢 sql
pt-query-digest mysql_slow.log --since '2020-09-21 09:30:00' --until '2020-09-21 18:30:00'
输入后果阐明
第一局部:总体统计后果
Overall:总共有多少条查问
Time range:查问执行的工夫范畴
unique:惟一查问数量,即对查问条件进行参数化当前,总共有多少个不同的查问
total:总计 min:最小 max:最大 avg:均匀
95%:把所有值从小到大排列,地位位于 95% 的那个数,这个数个别最具备参考价值
median:中位数,把所有值从小到大排列,地位位于两头那个数
......
#语句执行工夫
#锁占用工夫
#发送到客户端的行数
#select 语句扫描行数
#查问的字符数
第二局部:查问分组统计后果
Rank:所有语句的排名,默认按查问工夫降序排列,通过 --order-by 指定
Query ID:语句的 ID,(去掉多余空格和文本字符,计算 hash 值)Response:总的响应工夫
time:该查问在本次剖析中总的工夫占比
calls:执行次数,即本次剖析总共有多少条这种类型的查问语句
R/Call:均匀每次执行的响应工夫
V/M:响应工夫 Variance-to-mean 的比率
Item:查问对象
第三局部:每一种查问的具体统计后果
由上面查问的具体统计后果,最下面的表格列出了执行次数、最大、最小、均匀、95% 等各项目标统计。ID:查问的 ID 号,和上图的 Query ID 对应
Databases:数据库名
Users:各个用户执行的次数(占比)Query_time distribution:查问工夫散布, 长短体现区间占比,本例中 1s-10s 之间查问数量是 10s 以上的两倍。Tables:查问中波及到的表
Explain:SQL 语句
扫一扫,关注我