MySQL性能剖析工具(pt-query-digest)

这个工具同样来自percona-toolkit
 该工具集合的其他工具
 MySQL Slave异常关机的处理 (pt-slave-restart) 
 
验证MySQL主从一致性(pt-table-checksum&pt-table-sync) http://www.linuxidc.com/Linux/2014-07/104034.htm
 
它可以剖析各种日志,从而分析性能问题 http://www.linuxidc.com/Linux/2014-07/104236.htm
 包括
 1.慢日志(默认)
 2.tcpdump
 3.general log
 4.binlog
 5.show processlist
 
实验通过tpcc模拟一定的压力,并开启binlog,general log,slow log和tcpdump收集日志。
 关于tpcc参考: http://www.linuxidc.com/Linux/2014-07/104238.htm
 
1.slow log方式
 将slow_query_log设置为on
 long_query_time设置为0
 重新连接服务器(一般意味着中间件服务器重启)
 这样慢日志将记录所有的操作。
 
通过pt-query-digest分析慢日志文件,生成剖析报告
 首先是概要信息,包括一共有54.17k个操作,46个语句,平均每秒1.55k查询,剖析报告覆盖的时间等。


 
概要还包括类似Top SQL的分析
 可以从响应时间查看对服务器性能影响最大的SQL,其中R/Call指的是  平均每次执行的响应时间 ResponseTime/Calls


 
然后就是每条SQL的详细剖析报告,
 pct指的是该项占概要报告中的百分比


 

分析pt-query-digest输出结果。
1. 工具简介
pt-query-digest是用于分析mySQL慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。
安装
pt-query-digest

yum install perl-IO-Socket-SSL
yum install perl-DBD-MySQL
rpm -ivh percona-toolkit-2.2.9-1.noarch.rpm
2.语法及重要选项
pt-query-digest [OPTIONS] [FILES] [DSN]
--create-review-table  当使用--review参数把分析结果输出到表中时,如果没有表就自动创建。
--create-history-table  当使用--history参数把分析结果输出到表中时,如果没有表就自动创建。
--filter  对输入的慢查询按指定的字符串进行匹配过滤后再进行分析
--limit限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出,如果是50%则按总响应时间占比从大到小排序,输出到总和达到50%位置截止。
--host  mysql服务器地址
--user  mysql用户名
--password  mysql用户密码
--history 将分析结果保存到表中,分析结果比较详细,下次再使用--history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同一CHECKSUM来比较某类型查询的历史变化。
--review 将分析结果保存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单。当下次使用--review时,如果存在相同的语句分析,就不会记录到数据表中。
--output 分析结果输出类型,值可以是report(标准分析报告)、slowlog(Mysql slow log)、json、json-anon,一般使用report,以便于阅读。
--since 从什么时间开始分析,值为字符串,可以是指定的某个”yyyy-mm-dd [hh:mm:ss]”格式的时间点,也可以是简单的一个时间值:s(秒)、h(小时)、m(分钟)、d(天),如12h就表示从12小时前开始统计。
--until 截止时间,配合—since可以分析一段时间内的慢查询。


第一部分:总体统计结果


Overall: 总共有多少条查询,
Time range: 查询执行的时间范围。
unique: 唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询.
total: 总计   min:最小   max: 最大  avg:平均
95%: 把所有值从小到大排列,位置位于95%的那个数,这个数一般最具有参考价值。
median: 中位数,把所有值从小到大排列,位置位于中间那个数。


# 59.5s user time, 90ms system time, 51.81M rss, 228.12M vsz
# Current date: Sun Aug  3 16:09:31 2014
# Hostname: db1.test.com
# Files: ./slowquery.log
# Overall: 224.01k total, 570 unique, 0.01 QPS, 0.09x concurrency ________
# Time range: 2013-10-09 17:55:04 to 2014-08-03 15:16:38
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time        2188385s      2s   7229s     10s     13s     67s      5s
# Lock time        100721s       0    365s   450ms      2s      5s   119us
# Rows sent         26.98G       0   3.30M 126.27k 328.61k 371.66k    4.96
# Rows examine     394.85G       0   3.32G   1.80M   3.03M  20.83M 562.03k
# Query size        78.65M       6   5.54k  368.18  685.39  241.61  271.23

第二部分:查询分组统计结果


Response: 总的响应时间。
time: 该查询在本次分析中总的时间占比。
calls: 执行次数,即本次分析总共有多少条这种类型的查询语句。
R/Call: 平均每次执行的响应时间。
Item : 查询对象

# Profile
# Rank Query ID           Response time     Calls R/Call    V/M   Item
# ==== ================== ================= ===== ========= ===== ========
#    1 0xA6FE3D6982868655 351140.1266 16.0%   622  564.5340 99... CREATE TABLE dw_user_cache `dw_user_cache`
#    2 0x281C83DE62A11A8B 310896.7675 14.2% 40841    7.6124  6.51 SELECT dw_borrow_tender dw_borrow dw_user dw_credit dw_credit_rank
#    3 0x26BA6BEAE6C74350 279545.6534 12.8%  1305  214.2112 25... SELECT dw_account_log
#    4 0x54032826ADCE00D8 265383.3007 12.1% 27125    9.7837  0.75 SELECT dw_borrow dw_user
#    5 0xC6D55EBA716FD06A 155096.6704  7.1% 22411    6.9206  0.76 SELECT dw_borrow_tender dw_borrow_collection
#    6 0x891024348B7FA6E6 114279.5309  5.2% 40740    2.8051  0.74 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#    7 0x1FDB4303FDF6B0E2 107444.3602  4.9%  3575   30.0544 82.45 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#    8 0x23EAAA4FF23807E9  66187.2020  3.0%  8618    7.6801  2.57 SELECT dw_borrow_tender dw_borrow dw_user
#    9 0x67A347A2812914DF  57999.8268  2.7% 11874    4.8846  1.30 SELECT dw_account_log
#   10 0xCB5FB4ADA3DC39A6  50472.1849  2.3%   553   91.2698 13... SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   11 0xB5D71E48F29AC3E2  27186.7335  1.2%    31  876.9914 10... SELECT dw_user_cache dw_user
#   12 0x686CD345F7BADD7D  25119.7512  1.1%  9021    2.7846  0.11 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#   13 0x1A264A69F9BA0C4E  17611.1472  0.8%  3435    5.1270 22.25 SELECT dw_account_log
#   14 0x61EAA51EF025D8EF  16301.1821  0.7%  6428    2.5360  0.32 SELECT dw_borrow_collection dw_borrow_tender
#   15 0xD4B6AFA2D05E8D88  15652.0490  0.7%    75  208.6940 56... CREATE TABLE dw_article_fields `dw_article_fields`
#   16 0x5904F73A43C7B7EC  14959.7711  0.7%     9 1662.1968 75... SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   17 0x9CF37BD6ACAF1BF2  14231.6849  0.7%     2 7115.8425  3.60 SELECT dw_borrow_collection_copy
#   18 0x4612678E31E093F7  12925.8280  0.6%  1055   12.2520  2.26 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   19 0xC12857BE61793BE1  12892.1801  0.6%    27  477.4882 27... SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   20 0x024C0F93B0BADD04  12469.0146  0.6%  4891    2.5494  0.35 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#   21 0x1A049985AE4E2F6A  12448.3880  0.6%  2054    6.0606 13.18 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#   22 0xC98B23B65503594B  12289.8756  0.6%  4722    2.6027  0.31 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#   23 0x13764521ADA98ABB  12098.7824  0.6%  2075    5.8307  3.76 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#   24 0x2D03525FD4212FA3  10548.0904  0.5%   794   13.2847  2.37 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#   25 0xA12C03F6EC113579  10464.2831  0.5%    22  475.6492 27... SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   26 0x9444FF6F268AC28D   9747.2537  0.4%  3199    3.0470  0.56 SELECT dw_borrow_tender dw_borrow_collection dw_borrow
#   27 0x555478B2936ABEA4   9395.2045  0.4%   799   11.7587  1.75 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#   28 0x995ECC95C327A34F   7285.6256  0.3%   703   10.3636  5.23 SELECT dw_borrow_repayment dw_borrow
#   29 0xEECF212D98D23FF4   7124.1984  0.3%  2902    2.4549  0.22 SELECT dw_borrow_collection dw_borrow_tender
#   31 0xEFD47B7218EAEE88   6104.9908  0.3%   829    7.3643  1.42 SELECT dw_message
#   33 0xD2B792BCA787A2A7   5593.2295  0.3%   455   12.2928 10.04 UPDATE dw_bbs_topics
#   34 0x9416D3806CE5C1CF   5547.2043  0.3%  1933    2.8697  0.68 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#   36 0xC2A701837CE5A7FE   3829.0378  0.2%   126   30.3892 53.47 SELECT dw_account_log dw_user
#   37 0xFDD6D01D6A276759   3691.1291  0.2%  1688    2.1867  0.01 SELECT dw_message
#   38 0x0D4073804271EE14   3320.3629  0.2%  1343    2.4723  0.20 SELECT dw_borrow dw_borrow_tender
#   40 0x16CB5BD2CAE695D9   2842.7850  0.1%    80   35.5348 16.84 SELECT dw_account_log
#   41 0xCE38615B9A8B1E11   2789.2434  0.1%  1153    2.4191  0.41 SELECT dw_integral_log dw_user
#   42 0x681A5E20DEABF1AA   2678.5683  0.1%   930    2.8802  0.13 SELECT dw_borrow_tender dw_borrow_collection dw_borrow
#   45 0x65F9D35DAFC8FB11   2378.6930  0.1%    45   52.8598 50.17 SELECT dw_user dw_bbs_sign
#   46 0x1D7CBA0BE5BAA758   2347.4957  0.1%   394    5.9581  0.28 SHOW TRIGGERS
#   47 0x379B8D78AD4B43AD   2344.8506  0.1%   808    2.9020  0.67 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#   49 0x3E5A84448E22C253   2204.6833  0.1%   921    2.3938  0.05 SELECT dw_borrow_repayment dw_borrow
#   50 0xC0C703ACF4354212   2167.3205  0.1%   135   16.0542  2.12 SELECT dw_borrow dw_user dw_user_cache dw_user dw_userinfo
#   52 0xEBF69B24CCDCC03E   1975.5275  0.1%   669    2.9530  0.27 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#   53 0xEE8F8F0DB5AA81CE   1946.5688  0.1%    28   69.5203 44.61 SELECT dw_account_log dw_user
#   54 0xC2DE9ED4D64CFBF1   1871.9631  0.1%    23   81.3897 37... SELECT dw_user_cache
#   56 0x2CFBC4719E02C96F   1790.8727  0.1%   677    2.6453  4.63 SELECT dw_borrow_collection dw_borrow_tender
#   58 0x6B40F72020D66B39   1776.9902  0.1%    60   29.6165 35.89 SELECT dw_user dw_bbs_sign
#   59 0xA4BA1B440B9D081D   1750.4325  0.1%   255    6.8644  3.02 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#   60 0x881A6F4F54C6F1B1   1741.5004  0.1%   309    5.6359  0.10 SELECT dw_account_log dw_linkage
#   61 0x813031B8BBC3B329   1734.2587  0.1%   646    2.6846  0.31 COMMIT
#   62 0x51E39E49DBEDAD2C   1658.0404  0.1%   669    2.4784  0.29 SELECT dw_borrow_collection dw_borrow_tender
#   63 0xF56BEC75221FB39D   1600.5334  0.1%   150   10.6702  2.24 SELECT dw_borrow_repayment dw_borrow
#   64 0x3A38FE07E3E890D8   1595.9906  0.1%   210    7.6000 10.33 SELECT dw_account_recharge
#   65 0xAAA8996E72F813FE   1552.8871  0.1%   326    4.7635  0.62 SELECT dw_borrow
#   66 0x142368E967FCA86A   1540.1275  0.1%   618    2.4921  0.08 SELECT dw_borrow_repayment dw_borrow
#   67 0x051DE37D2AE3FF84   1362.0441  0.1%   315    4.3239  0.21 SELECT dw_account_log dw_user
#   68 0xE104C8459E6B7739   1278.6921  0.1%    18   71.0385 18.13 SELECT lidai?.dw_account_log
#   69 0xFD4D67F2AFFDE590   1243.9355  0.1%   166    7.4936  3.52 SELECT dw_user dw_ads_follow dw_account dw_area dw_account_recharge dw_user dw_borrow_tender
#   70 0x9BB3ED25A96174CD   1241.0157  0.1%    42   29.5480 54.34 SELECT dw_account_log
#   72 0x228CCC75C8DA443F   1189.0420  0.1%   188    6.3247  2.40 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#   73 0xCA233CB059ECB901   1165.4672  0.1%    32   36.4208 53.35 SELECT dw_account_log dw_user
#   74 0x8CCB871394927FE2   1136.1386  0.1%   181    6.2770  2.37 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#   76 0x3600A1B49DA394EE   1038.2666  0.0%   156    6.6556  0.17 SELECT dw_borrow_tender dw_borrow_collection
#   77 0xD029943043D50CC0    994.4349  0.0%    26   38.2475 58.59 SELECT dw_account_log dw_user
#   78 0x308559BB1D081EB3    993.8470  0.0%    61   16.2926  6.03 INSERT dw_transfer_log
#   79 0x51ABC278F244C387    981.0594  0.0%    10   98.1059 19... SELECT dw_borrow_collection dw_borrow_tender dw_borrow dw_user dw_borrow_tender
#   80 0x6FCA79342C1FB8FA    957.7486  0.0%    95   10.0816  2.31 SELECT dw_borrow_repayment dw_borrow
#   81 0x4D8C32BBA9D1A5D5    940.0878  0.0%    50   18.8018  6.23 UPDATE dw_message
#   83 0x309DC411C96D87ED    908.6600  0.0%   379    2.3975  0.07 SELECT dw_borrow_tender dw_borrow_collection
#   85 0x7C81069C58672068    857.6587  0.0%    97    8.8418  1.21 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#   87 0x3C82EB77CDADEA17    776.0847  0.0%   276    2.8119  0.24 SELECT dw_account_log dw_user
#   89 0x306AA9F2019395FE    744.0710  0.0%   267    2.7868  0.13 SELECT dw_borrow_tender dw_borrow_collection dw_borrow
#   90 0xEF0E7B1753BA0407    740.2857  0.0%    40   18.5071 16.39 SELECT dw_bbs_posts dw_user dw_invest_rank
#   91 0xE20308187C743605    733.2368  0.0%   150    4.8882  0.69 SELECT UNION dw_bbs_topics dw_bbs_forums dw_bbs_topics dw_bbs_forums dw_bbs_topics dw_bbs_forums dw_bbs_topics dw_bbs_forums dw_bbs_topics dw_bbs_forums dw_bbs_topics dw_bbs_forums
#   92 0x68C8A29EB43D1186    716.1971  0.0%   156    4.5910  0.54 SELECT dw_bbs_posts dw_user dw_invest_rank
#   93 0x0D41C9E5D21B88EF    712.5703  0.0%   244    2.9204  0.71 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#   95 0x6F7E2BE278B260D4    673.7594  0.0%    49   13.7502  9.00 UPDATE dw_borrow_auto
#   96 0xF1E0B265894B262B    671.1602  0.0%    99    6.7794  0.38 SELECT dw_bbs_posts dw_user dw_invest_rank
#   97 0xC225A7E494355944    669.3832  0.0%    77    8.6933  2.07 SELECT dw_message dw_user
#   98 0xB9006A83640F6AC4    668.7845  0.0%    42   15.9234  8.24 UPDATE dw_article
#   99 0x5F1EE78CA3C29A6C    668.4948  0.0%    83    8.0542  3.15 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  100 0x17C2D8B7730B018B    642.9315  0.0%    79    8.1384  3.07 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  103 0x199E0A173DFA2D80    599.9491  0.0%    87    6.8960  1.02 SELECT dw_comment dw_user dw_module
#  107 0x7D605E5950487AF5    558.2827  0.0%    60    9.3047 11.81 SELECT dw_area
#  108 0x0D182DEBDC8DF32D    541.3427  0.0%    23   23.5366 17.57 SELECT dw_borrow_repayment dw_borrow
#  109 0x1C3B9CCBE8BE6C6C    535.3157  0.0%    48   11.1524  4.17 SELECT dw_attestation dw_attestation_type dw_user
#  111 0xF815D99831467E87    504.3610  0.0%   212    2.3791  0.09 SELECT dw_account_log
#  113 0x2D4FD3C169BBFB29    498.1389  0.0%    59    8.4430  1.62 SELECT dw_borrow_collection dw_borrow_tender
#  114 0x532A0D75D5415F12    497.8568  0.0%    50    9.9571  5.48 SELECT dw_borrow
#  116 0x2171E402F72B1ABD    488.1605  0.0%    11   44.3782 18... SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#  117 0x8833A5FF928CE59D    430.9204  0.0%    61    7.0643  2.63 SELECT dw_site dw_module
#  118 0x15F6EC5D6E55E9EB    416.0158  0.0%    12   34.6680  0.90 CREATE TABLE dw_account_log dw_account_log_20140304
#  119 0xAC2E0CFFD22AAD91    411.8911  0.0%   153    2.6921  0.15 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  120 0xBBB4FC802F4DAEBD    405.2085  0.0%   144    2.8139  0.40 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  121 0x44104FF78FB2CCDE    401.2097  0.0%   146    2.7480  0.31 SELECT dw_account_recharge
#  122 0x78BBE98AB1D62FC0    400.6647  0.0%    65    6.1641  0.32 SELECT dw_message dw_user
#  123 0xCB04FB69656A84E7    397.4606  0.0%    72    5.5203  0.10 SELECT dw_account_log
#  124 0x9003310D5229035D    397.0504  0.0%    81    4.9019  2.68 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  125 0x4A958BB35A545E98    395.9654  0.0%   157    2.5221  0.19 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  126 0xDB0585772DE69172    388.0071  0.0%    20   19.4004  3.48 SELECT dw_user
#  127 0x66B4675D1C677106    379.6958  0.0%    93    4.0828  0.61 SELECT dw_borrow_auto
#  128 0xA5B0886841754810    377.7354  0.0%    76    4.9702  2.06 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  129 0x883A88F83A0530F2    362.6208  0.0%    79    4.5901  0.61 SELECT dw_borrow
#  130 0xBBCCE076172F07D3    360.3024  0.0%   123    2.9293  0.25 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  131 0xB08E8DB82C9AD1C6    359.2024  0.0%   108    3.3259  1.05 SELECT dw_borrow_tender dw_borrow_collection
#  132 0x9BFDE7672F9A65FC    356.0283  0.0%   110    3.2366  0.19 SELECT dw_borrow borrow_user dw_credit_rank dw_borrow_repayment
#  133 0x726230A00EABE213    355.6093  0.0%   149    2.3866  0.06 SELECT dw_borrow_repayment dw_borrow
#  134 0xCAE05A054C5751A0    334.8765  0.0%    21   15.9465  6.27 SELECT dw_bbs_topics dw_bbs_forums dw_bbs_posts
#  135 0x380E9B81C2FC6900    332.9056  0.0%   114    2.9202  0.74 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  137 0x2179C1DF0BE263CC    303.0903  0.0%   111    2.7305  0.15 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  139 0x4591ED3FA8763186    276.1440  0.0%    98    2.8178  0.21 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  141 0xB657A701DC4D6A00    262.7191  0.0%    42    6.2552  0.33 SELECT dw_borrow_collection dw_borrow_tender dw_borrow dw_user dw_borrow_tender
#  142 0xD0F123F2AC3F0660    259.0045  0.0%    16   16.1878  4.30 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#  143 0x82B988A48DEB7C90    256.4613  0.0%    57    4.4993  0.46 SELECT dw_bbs_topics
#  145 0x8634C8FABFAFF8F8    249.5191  0.0%    11   22.6836 13.25 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#  147 0x89230C39B41A9FDA    242.6061  0.0%    19   12.7687  5.18 SELECT dw_borrow_repayment dw_borrow
#  148 0x6439A5DD6746322B    236.1913  0.0%    18   13.1217  2.89 SELECT dw_user dw_user_type dw_user_cache dw_account dw_userinfo dw_invest_rank
#  149 0x82F89C1AFAA0F387    227.9793  0.0%    39    5.8456  4.42 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  150 0x1BB252D4DC558785    227.0967  0.0%    21   10.8141  7.80 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  152 0xA1FFA0272E46CD57    225.3568  0.0%    11   20.4870 34.87 SELECT lidai?.dw_account_recharge
#  153 0x652B44DF36C9FB03    224.8771  0.0%    34    6.6140  0.25 SELECT dw_borrow_repayment dw_borrow
#  156 0x6BBC42CD855B3E30    213.9297  0.0%    13   16.4561  7.20 UPDATE dw_message
#  157 0x4DE088D335ACA923    209.3560  0.0%    48    4.3616  0.54 SELECT dw_borrow
#  158 0xE50C92AFDD288B33    207.4203  0.0%    20   10.3710  7.72 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  159 0x22B38CCBBA0E8D7A    207.2121  0.0%    17   12.1889 16.99 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#  160 0x27DEE5AB1C9DC4AE    207.1853  0.0%    13   15.9373  7.88 SELECT dw_borrow dw_user dw_user_cache dw_user dw_credit dw_credit_rank dw_userinfo
#  161 0xB1E0DF5351F8D287    205.0043  0.0%    32    6.4064  0.17 SELECT dw_borrow dw_user
#  162 0x1458FA7D05A7AEE5    204.8885  0.0%    89    2.3021  0.03 SELECT dw_borrow_repayment dw_borrow
#  164 0x74FB2ADE2F877D90    192.1189  0.0%    31    6.1974  0.45 SELECT dw_borrow_collection dw_borrow_tender dw_borrow dw_user dw_borrow_tender
#  166 0xE371B55C1C684DF8    183.4475  0.0%    72    2.5479  0.16 SELECT dw_account_log
#  167 0xBABAFD75E441442C    180.5094  0.0%    13   13.8853  9.21 SELECT dw_borrow_collection dw_borrow_tender
#  168 0x562F1E04AB78091A    175.1864  0.0%    27    6.4884  0.70 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#  169 0x67AE63E951074962    175.0707  0.0%    68    2.5746  0.19 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  170 0x95C7C10BBE0F71D9    174.9168  0.0%    46    3.8025  0.07 SELECT dw_account_log dw_user
#  171 0x6CC30C23B2919D2B    173.6089  0.0%    75    2.3148  0.04 SELECT dw_account_recharge dw_user
#  172 0x61199112D48D8F69    172.4482  0.0%    26    6.6326  0.85 SELECT dw_bbs_topics dw_bbs_forums
#  174 0x87E4C701E96ED84D    168.7938  0.0%    13   12.9841  6.49 UPDATE dw_borrow_auto
#  175 0xD03BDC25FCC837B0    161.5570  0.0%    48    3.3658  3.84 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  176 0x47CC030AE0B8053F    158.4509  0.0%    25    6.3380  3.74 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  177 0x6B65BD5B1F94EE99    157.9761  0.0%    16    9.8735  3.58 SELECT dw_borrow_collection dw_borrow_tender
#  178 0xB899871670B736AC    157.8303  0.0%    67    2.3557  0.03 SELECT dw_account_log
#  180 0x2BE7CF5335742C54    153.2276  0.0%    19    8.0646  0.61 UPDATE dw_user_amount
#  182 0x3DDBE1567DDEAC43    148.8949  0.0%    16    9.3059  0.70 SELECT dw_user dw_ads_follow dw_account dw_account_recharge dw_user dw_borrow_tender
#  183 0x51EAAC967FA8CEB4    143.9176  0.0%    13   11.0706  1.67 SELECT dw_message dw_user
#  184 0x3ED7CD2970FE3BBA    141.9287  0.0%    24    5.9137  0.31 SELECT dw_account_log dw_linkage
#  185 0xD89A5D6CDBE02F51    140.9453  0.0%    26    5.4210  2.53 SELECT dw_account_cash dw_user dw_account dw_borrow_repayment dw_borrow dw_account_cash
#  186 0x2B5DA8084FE5F776    139.7017  0.0%    28    4.9893  1.17 SELECT borrow_user dw_user_amount
#  187 0xF7E82E82AF4DAF24    137.3459  0.0%    17    8.0792  0.93 SELECT dw_account_log
#  188 0x5EAA5D04F6BD407F    127.3032  0.0%    17    7.4884  1.10 UPDATE dw_bbs_topics
#  189 0x35B0FFF73EB65ACF    125.8719  0.0%    54    2.3310  0.10 SELECT dw_account_log
#  190 0xDF4E67957A5EB2EF    125.1811  0.0%    24    5.2159  0.76 SELECT dw_user
#  192 0x76ADAC19DE13661A    109.5036  0.0%    11    9.9549  0.12 SELECT dw_account_log dw_user
#  193 0xB0580569308FF08F    106.7025  0.0%    26    4.1039  0.05 SELECT dw_account_log dw_user
#  194 0xC2BA8A7F40BB2952    105.4124  0.0%    31    3.4004  0.67 SELECT dw_account_cash dw_user
#  198 0x224ED2DF28E7FD8E     93.6616  0.0%    15    6.2441  0.04 SELECT dw_borrow_repayment dw_borrow
#  199 0x46AACD7E5F128168     92.8745  0.0%    40    2.3219  0.03 SELECT dw_borrow
#  200 0x0EC91CA245B15139     90.8049  0.0%    10    9.0805  8.32 SELECT dw_account_recharge dw_user dw_borrow
#  203 0x3A0521BFB8506B79     88.4296  0.0%    19    4.6542  0.52 SELECT dw_bbs_posts dw_user dw_invest_rank
#  205 0x92D826773BE3DF67     86.3710  0.0%    15    5.7581  0.14 SELECT dw_borrow_collection dw_borrow_tender dw_borrow dw_user dw_borrow_tender
#  207 0x1185FD4B0F5D55F0     83.4627  0.0%    14    5.9616  0.54 SELECT dw_account_log
#  214 0x21C75D148ABEAC5B     74.8971  0.0%    10    7.4897  0.89 SELECT dw_borrow
#  215 0xB381B06D08A2250C     74.5037  0.0%    18    4.1391  0.54 SELECT dw_user dw_bbs_posts dw_invest_rank
#  219 0xC5EDE07E27590AE9     66.6947  0.0%    28    2.3820  0.04 SELECT dw_account_log dw_user
#  220 0x48F35858BBAF7C9A     66.1080  0.0%    15    4.4072  0.42 SELECT dw_bbs_topics
#  221 0x3BF7ED83502D5AE6     65.7778  0.0%    19    3.4620  0.23 SELECT dw_bbs_posts dw_user dw_invest_rank
#  222 0xC9AABC1ACEB7A115     64.9226  0.0%    27    2.4045  0.18 SELECT dw_account_log
#  223 0x54E31CD99E3515C2     64.8183  0.0%    28    2.3149  0.03 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  224 0x43CB242125ED0DB2     64.7368  0.0%    22    2.9426  0.60 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  226 0x3385E5163AD8F187     63.1666  0.0%    18    3.5093  1.26 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  237 0x1FF0B9E9A9D30C7A     49.9187  0.0%    23    2.1704  0.01 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  244 0x86E219E51E83B141     47.7172  0.0%    15    3.1811  0.65 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  247 0xAA2F5F002E2C3F46     44.6367  0.0%    18    2.4798  0.07 INSERT dw_borrow
#  252 0x74FC49AFFC59D2A2     40.7941  0.0%    18    2.2663  0.01 SELECT dw_borrow_repayment dw_borrow
#  259 0xDE6C0796782DDE08     37.2471  0.0%    16    2.3279  0.03 SELECT dw_borrow_repayment dw_borrow
#  262 0x41F5B55BA89BD5B0     36.0707  0.0%    16    2.2544  0.04 SELECT dw_account_recharge dw_user
#  263 0xE131AEB0262B29CB     35.7737  0.0%    13    2.7518  0.70 SELECT dw_borrow_repayment dw_borrow
#  269 0x613A0819005D53A8     33.9971  0.0%    12    2.8331  0.21 SELECT dw_message
#  271 0xA8408773F7018431     32.2226  0.0%    12    2.6852  0.15 SELECT UNION dw_borrow borrow_user dw_user borrow_user
#  275 0x0C21EC876C0C6FB7     31.6462  0.0%    10    3.1646  0.29 SELECT dw_borrow_collection dw_borrow_tender dw_borrow
#  294 0xC5C9BF90ADF8E20E     26.2727  0.0%    11    2.3884  0.04 SELECT borrow_user dw_user_amount
# MISC 0xMISC              52679.9592  2.4%   903   58.3388   0.0 <389 ITEMS>


第三部分:每一种查询的详细统计结果,
由下面查询的详细统计结果,最上面的表格列出了执行次数、最大、最小、平均、95%等各项目的统计。
Databases: 库名
Users: 各个用户执行的次数(占比)
Query_time distribution : 查询时间分布, 长短体现区间占比,本例中1s-10s之间查询数量是10s以上的两倍。
Tables: 查询中涉及到的表
Explain: 示例


# Query 1: 0.00 QPS, 0.03x concurrency, ID 0xA6FE3D6982868655 at byte 3667736
# This item is included in the report because it matches --limit.
# Scores: V/M = 996.42
# Time range: 2013-10-28 21:15:52 to 2014-03-25 17:00:36
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count          0     622
# Exec time     16 351140s      2s   2518s    565s   2437s    750s    113s
# Lock time      0    105s       0     25s   169ms       0      1s       0
# Rows sent      0       0       0       0       0       0       0       0
# Rows examine   0       0       0       0       0       0       0       0
# Query size     0  54.67k      90      90      90      90       0      90
# String:
# Databases    test2
# Hosts
# Users        rx1919 (369/59%), k1818 (246/39%)... 1 more
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s  ###
#  10s+  ################################################################
# Tables
#    SHOW TABLE STATUS FROM `test2` LIKE 'dw_user_cache'G
#    SHOW CREATE TABLE `test2`.`dw_user_cache`G
CREATE TABLE IF NOT EXISTS `dw_user_cache` (
                         `user_id` int(11) NOT NULL DEFAULT '0')G


# Query 172: 0.00 QPS, 0.00x concurrency, ID 0x61199112D48D8F69 at byte 56964086
# This item is included in the report because it matches --outliers.
# Scores: V/M = 0.85
# Time range: 2013-11-20 17:00:38 to 2014-03-23 09:00:45
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count          0      26
# Exec time      0    172s      5s     17s      7s      8s      2s      6s
# Lock time      0     3ms    63us   180us   100us   119us    22us    93us
# Rows sent      0     208       8       8       8       8       0       8
# Rows examine   0 333.82k   6.95k  20.62k  12.84k  18.47k   4.33k  10.80k
# Query size     0   5.59k     220     220     220     220       0     220
# String:
# Databases    test2
# Hosts
# Users        rx1919 (24/92%), tn1819 (2/7%)
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s  ################################################################
#  10s+  #####
# Tables
#    SHOW TABLE STATUS FROM `test2` LIKE 'dw_bbs_topics'G
#    SHOW CREATE TABLE `test2`.`dw_bbs_topics`G
#    SHOW TABLE STATUS FROM `test2` LIKE 'dw_bbs_forums'G
#    SHOW CREATE TABLE `test2`.`dw_bbs_forums`G
# EXPLAIN /*!50100 PARTITIONS*/
select p1.*,p2.name as forum_name from `dw_bbs_topics` as p1 
                                left join dw_bbs_forums as p2 on p2.id = p1.fid
                                where isrecycle<>1 and isrecycle<>1 and p1.status = 1 and p1.isgood = 1    order by rand()   limit 8G
# Query 68: 0.00 QPS, 0.00x concurrency, ID 0xE104C8459E6B7739 at byte 20996
# This item is included in the report because it matches --outliers.
# Scores: V/M = 18.13
# Time range: 2013-10-10 17:56:37 to 2013-11-09 23:11:24
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count          0      18
# Exec time      0   1279s     33s    175s     71s    151s     36s     66s
# Lock time      0   603us    22us    66us    33us    42us     9us    33us
# Rows sent      0  20.63M 674.13k   1.22M   1.15M   1.20M 125.83k   1.14M
# Rows examine   0  20.63M 674.13k   1.22M   1.15M   1.20M 125.83k   1.14M
# Query size     0     702      39      39      39      39       0      39
# String:
# Databases    test2
# Hosts         (13/72%), localhost (5/27%)
# Users        k1818 (14/77%), root (4/22%)
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s
#  10s+  ################################################################
# Tables
#    SHOW TABLE STATUS FROM `test2` LIKE 'dw_account_log'G
#    SHOW CREATE TABLE `test2`.`dw_account_log`G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT * FROM `test2`.`dw_account_log`G

4.用法示例
(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

猜你喜欢

转载自blog.csdn.net/qq_15037231/article/details/80492914