• ADADADADAD

    MySQL中pt-query-digest工具怎么使用[ mysql数据库 ]

    mysql数据库 时间:2024-11-25 13:37:22

    作者:文/会员上传

    简介:

    一、简介pt-query-digest是用于分析mysql慢查询日志的工具,它还可以分析来自“SHOW PROCESSLIST”和MySQL的查询 tcpdump中的协议数据。我们可以把分析日志输出到指定的文件

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、简介

    pt-query-digest是用于分析mysql慢查询日志的工具,它还可以分析来自“SHOW PROCESSLIST”和MySQL的查询 tcpdump中的协议数据。我们可以把分析日志输出到指定的文件中,通过分析日志文件做对应的优化等操作。

    二、下载并且安装

      根据不同的系统安装,我的系统是centos,所以直接选择centos安装

      直接使用yum安装

      >wgethttps://downloads.percona.com/downloads/percona-toolkit/3.4.0/binary/redhat/7/x86_64/percona-toolkit-3.4.0-3.el7.x86_64.rpm>yuminstallpercona-toolkit-3.4.0-3.el7.x86_64.rpm

        或者使用源码包编译安装

        >wgethttps://downloads.percona.com/downloads/percona-toolkit/3.4.0/source/debian/percona-toolkit-3.4.0.tar.gz>tar-zxvfpercona-toolkit-3.4.0.tar.gz>cdpercona-toolkit-3.4.0>perlMakefile.PLPREFIX=/usr/local/percona-toolkit>make&&makeinstall

        三、安装完成

          程序员必备接口测试调试工具:立即使用
          Apipost = Postman + Swagger + Mock + Jmeter
          Api设计、调试、文档、自动化测试工具
          后端、前端、测试,同时在线协作,内容实时同步

          四、分析msql的慢查询日志

            pt-query-digest参数可以使用perldoc命令查看

            perldoc/usr/bin/pt-query-digest

            分析整个慢日志文件

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

            分析指定时间的日志since~until

            pt-query-digestmysql-slow.log--since'2022-10-0100:00:00'--until'2022-11-0500:00:00'>slow_report_date_20221021-202221105.log

            –since: 表示开始时间

              –until: 表示结束时间

              分析慢日志,并且保存分析结果到mysql数据表

              pt-query-digest --user=root --password=123456 --history 
              h=192.168.33.10,D=local_test_db,t=query_review --create-history-table mysql-slow.log --since
              '2022-11-01 00:00:00' --until '2022-11-05 00:00:00'

              –user: 数据库用户名

                –password: 数据库密码

                h: 数据库 host

                D: 数据库名

                t: 生成的表名

                五、结果分析

                第一部分: 总的一个分析概况

                  Overall:总共有多少条查询

                  Time range:查询执行的时间范围

                  unique:唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询

                  total:所有查询总计时长

                  min:所有查询最小时长

                  max:所有查询最大时长

                  avg:所有查询平均时长

                  95%:把所有时长值从小到大排列,位置位于 95% 的那个时长数,这个数一般最具有参考价值

                  median:中位数,把所有时长值从小到大排列,位置位于中间那个时长数

                  # A software update is available:

                  # 23.7s user time, 15.8s system time, 35.67M rss, 249.01M vsz
                  说明:
                  执行过程中,在用户中所花费的所有时间
                  执行过程中,在内核空间中所花费的所有时间
                  pt-query-digest 进程所分配的内存大小
                  pt-query-digest 进程所分配的虚拟内存大小

                  # Current date: Mon Nov 7 09:01:23 2022
                  说明:当前时间
                  # Hostname: localhost.localdomain
                  说明:执行pt-query-digest的主机名
                  # Files: mysql-slow.log
                  说明:被分析的文件名称
                  # Overall: 44.78k total, 54 unique, 0.01 QPS, 0.07x concurrency __________
                  说明:
                  total: 语句总数量
                  unique: 唯一语句数量
                  QPS: 每秒查询量
                  concurrency: 查询的并发

                  # Time range: 2022-10-01 00:00:03 to 2022-11-04 16:05:24
                  说明:执行过程中日志记录的时间范围
                  # Attribute total min max avg 95% stddev median
                  说明:属性总计 最小值最大值 平均值95% 标准差中位数
                  95%: 把所有时长值从小到大排列,位置位于 95% 的那个时长数,这个数一般最具有参考价值
                  median: 中位数,把所有时长值从小到大排列,位置位于中间那个时长数

                  # ============ ======= ======= ======= ======= ======= ======= =======
                  # Exec time204553s 3s1540s 5s 10s 8s 3s
                  说明:执行时间
                  # Lock time 8s0107ms186us80us 2ms36us
                  说明:锁占用时间
                  # Rows sent238.87M02.88M5.46k11.95 68.22k0.99
                  说明:发送到客户端的行数
                  # Rows examine 73.56G05.01M1.68M3.86M 724.49k1.32M
                  说明:扫描的语句行数
                  # Query size 8.18M 304.36k 191.46 511.45 224.6372.65
                  说明:查询的字符数

                  第二部分:分析

                    Rank:所有语句的排名,默认按查询时间降序排列,通过 –order-by 指定

                      –order-by Query_time:sum :按总的查询时间倒序
                      排序参数介绍:
                      sumSum/total attribute value(默认值)
                      minMinimum attribute value(最小值)
                      maxMaximum attribute value(最小值)
                      cntFrequency/count of the query(按出现sql次数)

                      Query ID:语句的 ID(去掉多余空格和文本字符,计算 hash 值)

                      Response:总的响应时间

                      time:该查询在本次分析中总的时间占比

                      Calls:执行次数,即本次分析总共有多少条这种类型的查询语句

                      R/Call:平均每次执行的响应时间

                      V/M:响应时间 Variance-to-mean 的比率

                      Item:查询对象

                      #Profile说明:分析#RankQueryIDResponsetimeCallsR/Call#===================================================================#10xC000AA97F210B2AEAE4933AF9B00296A104236.20615...309883.36380.03SELECTxxx#20x974C6E6D54DB8B0DF505CA7BDC50868632167.960715.7%34189.41131.34SELECTxxx#30x6BE180C5804B585F25BB16550447DC6C18453.01859.0%24997.38420.92SELECTxxx#40xADF16E3E9EB5D6B08245E39FF1428C9F17873.43388.7%31145.73970.84SELECTxxx#50x2964CD629A24595719659BDAEBCF0E6F10648.54045.2%14377.41030.93SELECTxxx#60x50566E6DCF8FA562B88AE41AB1E32DC67424.38553.6%30324.502915.41SELECTxxx#70xDB0A3D60F85C2212C476B144E1678AB85327.83702.6%16273.27460.05SELECTxxx#80x04BB0B332CEED517298AB06DE2A30AD63190.68221.6%6574.85641.36SELECTxxx#100xDAB0AF524151C621DC0E9B92AC002C38526.62880.3%1403.76160.01SELECTxxx#MISC0xMISC1807.10670.9%5731.70360.0<27ITEMS>

                      第三部分:具体的sql统计和分析

                        pct:该 sql 语句某执行属性占所有慢查询语句某执行属性的百分比

                        total:该 sql 语句某执行属性的所有属性时间。

                        Count:sql 语句执行的次数。对应的 pct 表示此 sql 语句执行次数占所有慢查询语句执行次数的 % 比(下图为 69%),对应的 total 表示总共执行了 30988 次。

                        Exec time:sql 执行时间

                        Lock time:sql 执行期间被锁定的时间

                        Rows sent:传输的有效数据,在 select 查询语句中才有值

                        Rows examine:总共查询的数据,非目标数据。

                        Query_time distribution:查询时间分布

                        SQL 语句:下图中为 select sleep(7)\G

                        #Query1:0.01QPS,0.03xconcurrency,ID0xC000AA97F210B2AEAE4933AF9B00296Aatbyte221452362说明:查询队列1:每秒查询量,查询的并发,队列1的ID值,对应第二部分的QueryID,221452362表示偏移量(查看方法看下面的“查看偏移”)#Thisitemisincludedinthereportbecauseitmatches--limit.#Scores:V/M=0.03#Timerange:2022-10-0100:00:05to2022-11-0416:05:24说明:sql语句在慢日志文件mysql_slow.log出现的时间范围#Attributepcttotalminmaxavg95%stddevmedian说明:属性占整个总数最小值最大值平均值95%标准差中间值分析中的百分比#================================================================#Count6930988说明:执行语句总数量#Exectime50104236s3s7s3s4s303ms3s说明:执行时间#Locktime242s22us93ms65us66us775us38us说明:锁占用时间#Rowssent070.53k07992.333.8916.600.99说明:发送到客户端的行数#Rowsexamine5440.28G1.32M1.35M1.33M1.32M15.65k1.32M说明:扫描语句的行数#Querysize262.16M73737373073说明:查询的字符数#String:#Hostslocalhost说明:使用的数据主机IP#Usersxxx说明:使用的用户#Query_timedistribution#1us#10us#100us#1ms#10ms#100ms#1s#################################################################10s+说明:查询时间分布#Tables#SHOWTABLESTATUSLIKE'xxx'\G#SHOWCREATETABLE`xxx`\G#EXPLAIN/*!50100PARTITIONS*/select*from`table_name`where`updated_at`>='2022-10-1500:00:40'\G说明:查询的mysql语句第三部分是每一种查询比较慢的sql的详细统计结果pct:该sql语句某执行属性占所有慢查询语句某执行属性的百分比total:该sql语句某执行属性的所有属性时间。Count:sql语句执行的次数。Exectime:sql执行时间Locktime:sql执行期间被

                        六 查看偏移

                          可以利用偏移量在慢查询日志文件中到查找到具体的 SQL 语句,查找方法如下:

                          [localhost]#tail-c+221452362./mysql-slow.log|headt:root[root]@localhost[]Id:13704150#Query_time:7.058835Lock_time:0.000040Rows_sent:2Rows_examined:1392521SETtimestamp=1665763267;select*from`xxxxxx`where`updated_at`>='2022-10-1500:00:40';#User@Host:root[localhost]@localhost[]Id:13704174#Query_time:7.445741Lock_time:0.000015Rows_sent:3Rows_examined:2214002SETtimestamp=1665763267;selectxxxfromtablewherexxx#Time:221015008#User@Host:root[localhost]@localhost[]Id:13704414
    MySQL中pt-query-digest工具怎么使用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlptquerydigest