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语句

扫一扫,关注我