文档章节

MySQL 慢查询日志分析 pt-query-digest

harkdi
 harkdi
发布于 2015/12/28 18:53
字数 1165
阅读 311
收藏 1

打开查询日志,会记录所有查询

general_log=ON

general_log_file=/home/logs/mysql.log

下载安装    官方文档  https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html

wget http://www.percona.com/get/pt-query-digest

yum -y install perl-Time-HiRes

chmod +x pt-query-digest

cp pt-query-digest /usr/bin/


或者下载整套工具

wget percona.com/get/percona-toolkit.rpm

rpm -ivh percona-toolkit-2.2.13-1.noarch.rpm


wget percona.com/get/percona-toolkit.tar.gz

tar -zxvf percona-toolkit-2.2.13.tar.gz 

cd percona-toolkit-2.2.13

perl Makefile.PL

make && make install

percona-toolkit工具包的使用教程之介绍和安装
http://blog.chinaunix.net/uid-20639775-id-3206802.html
percona-toolkit工具包的使用教程之开发工具类使用
http://blog.chinaunix.net/uid-20639775-id-3207926.html
percona-toolkit工具包的使用教程之性能类工具
http://blog.chinaunix.net/uid-20639775-id-3210834.html
percona-toolkit工具包的使用教程之配置类工具
http://blog.chinaunix.net/uid-20639775-id-3210843.html
percona-toolkit工具包的使用教程之监控类工具使用
http://blog.chinaunix.net/uid-20639775-id-3215742.html
percona-toolkit工具包的使用教程之复制类工具
http://blog.chinaunix.net/uid-20639775-id-3229211.html
percona-toolkit工具包的使用教程之系统类工具
http://blog.chinaunix.net/uid-20639775-id-3236839.html
percona-toolkit工具包的使用教程之实用类工具
http://blog.chinaunix.net/uid-20639775-id-3236864.html

MySQL 慢查询日志分析及可视化结果

http://www.ttlsa.com/mysql/mysql-slow-query-log-analysis-and-visualization-of-results/

用法示例

(1)直接分析慢查询文件:

pt-query-digest  slow.log > slow_report.log


(2)分析最近12小时内的查询:

pt-query-digest  --since=12h  slow.log > slow_report2.log


(3)分析指定时间范围内的查询:

pt-query-digest slow.log --since '2014-04-17 09:30:00' --until '2014-04-17 10:00:00'> > slow_report3.log


(4)分析指含有select语句的慢查询

pt-query-digest--filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log


(5) 针对某个用户的慢查询

pt-query-digest--filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log


(6) 查询所有所有的全表扫描或full join的慢查询

pt-query-digest--filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' slow.log> slow_report6.log


(7)把查询保存到query_review表

pt-query-digest  --user=root –password=abc123 --review  h=localhost,D=test,t=query_review--create-review-table  slow.log


(8)把查询保存到query_history表

pt-query-digest  --user=root –password=abc123 --review  h=localhost,D=test,t=query_ history--create-review-table  slow.log_20140401

pt-query-digest  --user=root –password=abc123--review  h=localhost,D=test,t=query_history--create-review-table  slow.log_20140402


(9)通过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_report9.log


(10)分析binlog

mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql

pt-query-digest  --type=binlog  mysql-bin000093.sql > slow_report10.log


(11)分析general log

pt-query-digest  --type=genlog  localhost.log > slow_report11.log


tcpdump抓取mysql sql语句脚本

#!/bin/bash
#this script used montor mysql network traffic.echo sql

tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
    if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i)
    {
        if (defined $q) { print "$q\n"; }
        $q=$_;
    } else {
        $_ =~ s/^[ \t]+//; $q.=" $_";
    }
}


例  pt-query-digest slowquery.log

# 15s user time, 40ms system time, 28.67M rss, 180.19M vsz
# Current date: Tue Dec 29 17:17:10 2015
# Hostname: owl1
# Files: slowquery.log
# Overall: 41.77k total, 282 unique, 0.12 QPS, 0.72x concurrency _________

# Time range: 2015-12-25 18:20:35 to 2015-12-29 17:17:01
# Attribute          total     min     max     avg     95%  stddev  median
     属性             总计     最小    最大    平均          标准    中等
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time        244824s    76us   9300s      6s   490us    189s   204us
  语句执行时间
# Lock time            15s       0      1s   351us   214us     9ms    89us
# Rows sent          9.59M       0 728.56k  240.74    0.99  10.85k    0.99
  发送到客户端行数
# Rows examine      35.91M       0   1.42M  901.56   51.63  23.34k    2.90
  扫描行数
# Query size        11.09M       6   1.03k  278.45  621.67  170.03  192.76

# Profile
# Rank Query ID           Response time     Calls R/Call     V/M =>响应时间Variance-to-mean的比率
  排名 语句ID             响应时间          次数 平均响应时间       Item =>查询语句一部分
# ==== ================== ================= ===== ========= ===== ========
#    1 0x813031B8BBC3B329 244241.8160 99.8%   188 1299.1586 49... COMMIT
#    2 0x9C487FF1619D928A    145.4454  0.1%    83    1.7524  0.25 SELECT t_media
#    3 0xA2C6AEC11CD4CE59    119.4845  0.0%    72    1.6595  0.21 SELECT t_activity_live
#    4 0x2AF153117E450C55     91.8681  0.0%    66    1.3919  0.20 SELECT t_relation
#    5 0x03096D125987A35D     78.8235  0.0%    58    1.3590  0.18 SELECT t_activity_record
#    8 0xB7E1D1E378B827B7     14.2656  0.0%    12    1.1888  0.15 SELECT t_user_record
# MISC 0xMISC                132.7931  0.1% 41291    0.0032   0.0 <276 ITEMS>

每条查询语句分析 pct指的是该项占概要报告中的百分比
# Query 1: 0.01 QPS, 0.01x concurrency, ID 0x9C487FF1619D928A at byte 272548
# Scores: V/M = 0.25
# Time range: 2015-12-25 18:20:35 to 22:40:37
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count          0      83
# Exec time      0    145s   541ms      3s      2s      3s   662ms      2s
# Lock time      0    14ms    79us   502us   163us   273us    71us   144us
# Rows sent      0      83       1       1       1       1       0       1
# Rows examine   0      83       1       1       1       1       0       1
# Query size     0  85.27k   1.03k   1.03k   1.03k   1.03k       0   1.03k
# String:
# Hosts        owl-test
# Users        owluser
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms  ########
#    1s  ################################################################
#  10s+
# Tables
#    SHOW TABLE STATUS LIKE 't_media'\G
#    SHOW CREATE TABLE `t_media`\G
# EXPLAIN /*!50100 PARTITIONS*/
select mediaasset0_.id as id1_16_0_, mediaasset0_.begin_time as begin_ti2_16_0_, mediaasset0_.channel_id as channel_3_16_0_, mediaasset0_.chat_url as chat_url4_16_0_,
 mediaasset0_.create_time as create_t5_16_0_, mediaasset0_.owl_id as owl_id6_16_0_, mediaasset0_.duration as duration7_16_0_, mediaasset0_.end_time as end_time8_16_0_,
  mediaasset0_.locat_desc as locat_de9_16_0_, mediaasset0_.location as locatio10_16_0_, mediaasset0_.media_type as media_t11_16_0_, mediaasset0_.origin_type as origi
  n_12_16_0_, mediaasset0_.play_state as play_st13_16_0_, mediaasset0_.player as player14_16_0_, mediaasset0_.large_poster as large_p15_16_0_, mediaasset0_.medium_po
  ster as medium_16_16_0_, mediaasset0_.small_poster as small_p17_16_0_, mediaasset0_.price as price18_16_0_, mediaasset0_.rank as rank19_16_0_, mediaasset0_.real_ti
  me as real_ti20_16_0_, mediaasset0_.short_url as short_u21_16_0_, mediaasset0_.status as status22_16_0_, mediaasset0_.tags as tags23_16_0_, mediaasset0_.title as t
  itle24_16_0_ from t_media mediaasset0_ where mediaasset0_.id=82154\G


本文转载自:http://blog.csdn.net/seteor/article/details/24017913

共有 人打赏支持
harkdi
粉丝 7
博文 60
码字总数 24643
作品 0
系统管理员
私信 提问
mysql慢查询功能详解

有人的地方就有江湖,数据库也是,sql优化这个问题,任重道远,我们总是禁不住有烂sql。怎么办呢,还好各大数据库都有相关烂sql的收集功能,而mysql的慢查询收集也是异曲同工,配合分析sql的...

arthur376
2017/07/19
0
0
高性能MYSQL读书要点摘录_2_性能刨析工具_pt-query-digest

pt-query-digest 使用pt-query-digest 刨析服务器负载 刨析单条查询记录 诊断间歇性问题 链接地址:http://my.oschina.net/robinyao/blog/537039...

robin-yao
2015/11/29
112
0
MySQL性能分析系统

对于MySQL慢查询日志的分析,现已由多种工具来提供;最原始的mysqldumpslow,功能比较齐全的 mysqlsla和percona的 pt-query-digest;以上工具大大提高了DBA来分析数据库的性能效率,减少了过...

像教授
2017/11/26
0
0
percona tools 之 pt-query-digest

1. 工具简介 pt-query-digest 是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把...

潘驴
2017/07/06
0
0
使用Box Anemometer基于pt-query-digest将MySQL慢查询可视化

版权声明:本文为EnweiTech原创文章,未经博主允许不得转载。 https://blog.csdn.net/English0523/article/details/80243722 最近玩MySQL,发现了一个很不错的工具,可以把MySQL慢查询可视化...

天府云创
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何限制用户仅通过HTTPS方式访问OSS?

一、当前存在的问题 当前OSS支持用户使用HTTPS/HTTP协议访问Bucket。但由于HTTP存在安全漏洞。大型企业客户都要求使用HTTPS方式访问OSS,并且拒绝HTTP访问请求。 目前OSS可以通过RAM policy方...

阿里云官方博客
12分钟前
0
0
详解深度学习之经典网络架构——LeNet

一、基本简介 LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 二、LeNet网络的基本结构 LeNet5 这个网络虽...

AI女神
15分钟前
0
0
日志服务Python消费组实战(二):实时分发数据

场景目标 使用日志服务的Web-tracking、logtail(文件极简)、syslog等收集上来的日志经常存在各种各样的格式,我们需要针对特定的日志(例如topic)进行一定的分发到特定的logstore中处理和...

阿里云云栖社区
16分钟前
1
0
LVM 增加磁盘扩容

sudo parted /dev/sdeparted> mklabel gptparted> mkpart primary lvm ext4 %0 %100parted> printsudo lvmlvm> pvcreate /dev/sde1lvm> vgextend vg-data /dev/sde1lvm> lve......

仪山湖
19分钟前
0
0
Linux挂载本地iso镜像,不联网使用yum命令

上传iso镜像文件到/mnt 目录下 在/mnt目录下创建Server目录 mkdir Server 备份 /etc/yum.repos.d/目录下的repo文件 cd /etc/yum.repos.dmkdir repobakmv *.repo repobak/ 挂载本地iso文件...

AustinYe
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部