使用pt-query-digest分析mysql slow query log

原创 2013年12月02日 13:17:54

介绍一下percona toolkit中的pt-query-digest:

http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html

下载地址:

http://www.percona.com/software/percona-toolkit/

官方文档:

http://www.percona.com/doc/percona-toolkit/pt-query-digest.html

请先确定在my.ini中打开了mysql的slow_query_log,并且保证long_query_time参数设置得很合理。

pt-query-digest是一个perl脚本,只需下载即可。

[root@sso bianxuehui]# wget percona.com/get/pt-query-digest 
[root@sso bianxuehui]# file pt-query-digest 
pt-query-digest: a perl script text executable
[root@sso bianxuehui]# ll  pt-query-digest
-rw-r--r-- 1 root root 499727 09-02 00:01 pt-query-digest
[root@test_dx modify]# chmod u+x pt-query-digest 

使用如下,如果slow log够大的话,会消耗相当多的cpu和内存,所以最好把slow log和pt-query-digest放到其它的server上面运行。

[root@test_dx bianxuehui]# ./pt-query-digest  slow.log  >digest.log

看一下digest.log的内容。
第一部分是摘要:

从这份摘要中可以看出,dxdb1-slow.log中共有776条SQL语句, 去掉重复(至于怎样才算是重复,下文会有介绍),有11条SQL。
然后又有很多的Attribute和很多的值,比如total(总和),min最小值, max最大值, avg平均值,
95%(*),stddev(不知道是啥,标准差?)和median中位数。
中位数的概念就是把这些值从小到大排序,位置位于最中间的那个数。

在这些值中,最有意义的恐怕就是95%了,与中位数类似,它也是把所有值从小到大排列,位置位于95%的那个数。
它过滤了一些非常大的值,因此更有统计学上的意义,其实统计学上更喜欢用四分位数(1/4, 1/2, 3/4), 中位数也是四分位数之一。

另外,根据SQL语句的不同,可能会有更多的Attribute显示出来。 比如Tmp tables, Tmp disk tbl,Tmp tbl size之类的。

继续看第二部分:

这一部分显示了最慢的七种类型的SQL语句。
我这里最慢的是INSERT INTO test_show …… 共有547条语句,虽然每次插入的数据都是不同的,但也被归于同一类型的语句了。

第三部分最重要了。
以排名第七的SQL为例。

从上面可以看出,共有13条语句,[95%]Exec time是10s,时间长得比较离谱了。数据库为test,主机为dx_web_1,用户名为test_user,然后是query time的分布图,这个图太恶心了,不过也可以看得出来大部分是处于1-10s之间的, 还有一些超过10秒了。

最后是几条SQL语句, 是pt-query-digest生成的,这些语句有助于分析问题。

事实上,pt-query-digest的功能远远不止于此,除了直接分析slow query log并生成报告,它还可以filter, replay, transform queries for mysql,postgresql, memcached!

参考文档:

http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_long_query_time

http://www.percona.com/doc/percona-server/5.1/diagnostics/slow_extended.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用

系统性能调优尤其是mysql数据库性能调优一个主要依据就是慢查询日志了。原来在ubantu 或centos 上有一个强大工具就是 percona toolkit,那么在mac 上如何使用pt-quer...

MYSQL慢查询分析pt-query-digest输出结果

分析pt-query-digest输出结果。 1. 工具简介 pt-query-digest是用于分析mySQL慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以...

通过pt-query-digest分析收集MySQL慢查询日志到指定位置

 说明:本脚本是基于开源工具Lepus监控            需要安装percona-toolkit工具包 慢查询时间:主库1s,只读库3s 一台服务器上单实例或者多实例都可执行,本例...

用mysqldumpslow分析mysql的slow query log

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如...

mysql慢日志 :slow query log 分析数据

1 慢查询日志 配置 2  查看慢查询日志工具:mysqldumpslow mysqlsla 3. 五种MySQL日志分析工具比拼           ...

mysql profile explain slow_query_log分析优化查询

在mysql查询性能分析中最常用的就是explain了,profile查看一些具体的性能也是不错的。同时也可以通过slow_query_log记录的慢日志分析查询性能。 1. profile ...

pt-query-digest+Anemometer实现MySQL慢查询可视化

安装pt-query-digest pt-query-digest是percona-toolkit里面一个工具,其作用就是分析慢查询日志,将MySQL慢查询日志进行统计并友好的显示出来。 # wge...

MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

MYSQL优化浅谈msyql是开发常用的关系型数据库,快速、稳定、开源等优点就不说了。 个人认为,项目上线,标志着一个项目真正的开始。从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考...

pt-query-digest解析MySQL Binlog日志文件

pt-query-digest解析binlog

pt-query-digest查询日志分析工具

1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)