mysql中的pt-query-digest命令有什么用

这篇文章将为大家详细讲解有关mysql中的pt-query-digest命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过show processlist命令或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。默认情况下,该工具分析slow log并会报告哪个查询最慢。查看帮助:$ pt-query-digest –helpUsage: pt-query-digest [OPTIONS] [FILES] [DSN]–host #指定MySQL地址;–port #指定MySQL端口;–socket #指定MySQL SOCK文件;–user #指定MySQL用户;–password #指定MySQL密码;–type #指定将要分析的类型,默认是slowlog,还有如binlog,general log等;–charset #指定字符集;–filter #对输入的慢查询按指定的字符串进行匹配过滤后再进行分析;–limit #限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出,如果是50%则按总响应时间占比从大到小排序,输出到总和达到50%位置截止;–review #将分析结果保开发云主机域名存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单;当下次使用–review时,如果存在相同的语句分析,就不会记录到数据表中;–history #将分析结果保存到表中,分析结果比较详细,下次再使用–history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同–CHECKSUM来比较某类型查询的历史变化;–since #从什么时间开始分析,值为字符串,可以是指定的某个”yyyy-mm-dd [hh:mm:ss]”格式的时间点,也可以是简单的一个时间值:s(秒)、h(小时)、m(分钟)、d(天),如12h就表示从12小时前开始统计;–until #截止时间,配合–since可以分析一段时间内的慢查询;–log #指定输出的日志文件;–output #分析结果输出类型,值可以是report(标准分析报告)、slowlog(Mysql slow log)、json、json-anon;一般使用report,以便于阅读;–create-review-table #当使用–review参数把分析结果输出到表中时,如果没有表就自动创建;–create-history-table #当使用–history参数把分析结果输出到表中时,如果没有表就自动创建;使用举例:1) pt-query-digest分析慢查询日志;$ pt-query-digest –report slow.log2) 报告最近半个小时的慢查询;$ pt-query-digest –report –since 1800s slow.log3) 报告一个时间段的慢查询;$ pt-query-digest –report –since ‘2019-02-10 21:48:59’ –until ‘2019-02-16 02:33:50’ slow.log4) 报告只含select语句的慢查询;$ pt-query-digest –filter ‘$event->{fingerprint} =~ m/^select/i’ slow.log5) 报告针对某个用户的慢查询;$ pt-query-digest –filter ‘($event->{user} || “”) =~ m/^root/i’ slow.log6) 报告所有的全表扫描或full join的慢查询;$ pt-query-digest –filter ‘(($event->{Full_scan} || “”) eq “yes”) || (($event->{Full_join} || “”) eq “yes”)’ slow.log7) 把查询保存到query_review表;$ pt-query-digest –user=root –password=123456 –review h=localhost,D=test,t=query_review –create-review-table slow.log8) 把查询保存到query_history表;$ pt-query-digest –user=root –password=123456 –history h=localhost,D=test,t=query_history –create-history-table slow.log9) 通过tcpdump抓取mysql的tcp协议数据,然后再分析;$ tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql_tcp.txt$ pt-query-digest –type tcpdump mysql.tcp.txt > slow_report.log10) 分析binlog;$ mysqlbinlog mysql-bin.000001 > mysql-bin000001.sql$ pt-query-digest –type=binlog mysql-bin000001.sql > slow_report.log11) 分析general log;$ pt-query-digest –type=genlog general.log > slow_report.log关于“mysql中的pt-query-digest命令有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

相关推荐: mysql中如何删除某一个文件中的后两行

本篇文章为大家展示了mysql中如何删除某一个文件中的后两行,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。新建一个文件并让文件中显示行号方便后续执行查看结果cat -b /etc/passwd > a.txtca…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/23 22:01
下一篇 06/23 22:01

相关推荐

发表评论

您的电子邮箱地址不会被公开。

[“助力站长”]投稿本站,经审核符合,赠送主机空间 或 享超低优惠;云主机免费试用,参见:www.if98.com