zoukankan      html  css  js  c++  java
  • MySQLReport


    简介:

    MySQLReport

    一、安装

    shell > yum -y install mysqlreport perl-DBD-MySQL

    二、使用

    shell > mysqlreport --user xxxx --password xxxx --socket /tmp/mysql.sock --flush-status --outfile 20180208.report
    
    MySQL 5.5.52-log         uptime 17 15:43:7      Wed Feb  7 11:25:42 2018
    
    # MySQL 版本,运行时间 ( 分析时,MySQL 最好已经运行一段时间,否则数据不准确 )
    
    __ Key _________________________________________________________________
    Buffer used     2.44G of   3.00G  %Used:  81.30            # Buffer 曾经最大使用内存量、率
      Current       3.00G            %Usage: 100.00            # 当前使用量、率,可以看到 Key_buffer_size 设太小了
    Write hit      66.70%                                    # ?
    Read hit       99.90%                                    # ?
    
    # MyISAM 存储引擎 Share (Key、Index) Buffer 相关参数。重要 !!!
    # Buffer used 使用率是不会超过 95% 的,官方文档说 Share Key Buffer 会将一部分内存给内部数据结构使用,
    # 所以当 Buffer used 使用率达到 95% 时,实际已经达到 100% 了。
    
    __ Questions ___________________________________________________________
    Total           1.14G   744.6/s                            # MySQL 总共响应过多少查询,响应频率(QPS)
      DMS           1.01G   659.7/s  %Total:  88.59            # Data Manipulation Statements 数据处理语句总数、QPS、占所有查询百分比。
      -Unknown    698.58M   458.0/s           61.50
      Com_        647.54M   424.5/s           57.01
      COM_QUIT    180.60M   118.4/s           15.90
    Slow 2 s      344.25k     0.2/s            0.03  %DMS:   0.03  Log:  ON  # 慢查询次数,%DMS 0.03 代表慢查询在DMS语句中的百分比,不要大于 0.05
    DMS             1.01G   659.7/s           88.59            # 这下面是各分类统计情况,如果开启查询缓存还会有 QC Hits 这个类别
      SELECT      774.87M   508.0/s           68.22         77.00             # 最后一个字段是子类别对分类的百分比 
      UPDATE      184.24M   120.8/s           16.22         18.31
      INSERT       40.54M    26.6/s            3.57          4.03
      REPLACE       3.91M     2.6/s            0.34          0.39
      DELETE        2.73M     1.8/s            0.24          0.27
    Com_          647.54M   424.5/s           57.01
      begin       231.41M   151.7/s           20.37
      commit      231.41M   151.7/s           20.37
      set_option  175.92M   115.3/s           15.49
    
    # 查看 MySQL 到底在做什么。重要 !!!
    # 会有五个分类:DMS (Data Manipulation Statements)、QC Hits、COM_QUIT、all other Com_commands、Unknown
    # 顺序是按第一个字段值排序的,如果 DMS、QC Hits 最靠前且百分比很高,说名是个很好的现象。
    
    __ SELECT and Sort _____________________________________________________
    Scan           32.45M    21.3/s %SELECT:   4.19            # SELECT 语句造成的全变扫描
    Range          29.97M    19.6/s            3.87            # 范围扫描
    Full join      11.69k     0.0/s            0.00            # 表连接
    Range check         0       0/s            0.00
    Full rng join       0       0/s            0.00
    Sort scan      55.50M    36.4/s                            # 全表扫描排序
    Sort range    137.91M    90.4/s                            # 范围扫描排序
    Sort mrg pass       0       0/s
    
    # 从在这里可以看出一些性能上的问题,全表扫描、表连接、排序等。
    # 这些都要特定分析,例如扫描: 如果表只有几十行跟有几百万行产生的影响肯定不一样。
    
    __ Table Locks _________________________________________________________
    Waited         43.15M    28.3/s  %Total:   3.82            # 等待表锁的次数、百分比,大于 10% 则表示索引设计不良或慢查询太多
    Immediate       1.09G   712.4/s                            # 不需要等待,可以立即获得锁的次数
    
    # 表锁相关,Waited 越低越好。
    
    __ Tables ______________________________________________________________
    Open             1024 of 1024    %Cache: 100.00            # 目前表打开的数量、最大打开数、table_open_cache 使用率
    Opened          4.03M     2.6/s                            # 表平均打开次数,该值越大说明 table_open_cache 太小,需要调大
    
    # 表缓存,如果 %Cache 为 100,那么可以尝试调大 table_open_cache (table_cache) 该值
    
    __ Connections _________________________________________________________
    Max used         3001 of 3000      %Max: 100.03            # 当前连接数,最大连接数,百分比
    Total         180.64M   118.4/s
    
    # MySQL Server 数据处理是很快的,最大连接数其实不是越大越好
    # 根本原因可能是慢查询、不合适的索引、DNS 解析等导致数据库处理速度下降,从而拉高最大连接数
    
    __ Created Temp ________________________________________________________
    Disk table      8.51M     5.6/s                            # 使用磁盘存放临时表的数量、百分比
    Table          74.84M    49.1/s    Size: 128.0M            # 当使用磁盘存放临时表时,可以适当调高 tmp_table_size
    File                7     0.0/s
    
    # 临时表,使用临时表本来就是个不好的事情,而使用磁盘存储更差,所以 Disk table 应该足够小。
    # 增加临时表内存大小、优化 SQL,减少临时表发生
    
    __ Threads _____________________________________________________________
    Running             4 of    9                            # 运行中的线程数,最大线程数
    Cached              6 of    8      %Hit:  92.24            # 线程缓存数,最大线程缓存数,线程缓存命中率
    Created        14.02M     9.2/s                            # 创建的线程数,每秒,越小越好,说明缓存命中
    Slow                0       0/s
    
    # 线程缓存,MySQL 启动时会创建几个线程,然后让连接复用,%Hit 越大越好,否则调整 thread_cache_size
    
    __ Aborted _____________________________________________________________
    Clients        71.49k     0.0/s
    Connects        4.30M     2.8/s
    
    # 中断
    
    __ Bytes _______________________________________________________________
    Sent          404.50G  265.2k/s
    Received      207.22G  135.9k/s
    
    # 流量
    
    __ InnoDB Buffer Pool __________________________________________________
    Usage         1021.81 of   1.00G  %Used:  99.79            # 缓冲命中率,越大越好
    Read hit      100.00%
    Pages
      Free            140            %Total:   0.21
      Data         60.55k                     92.40 %Drty:   0.06
      Misc           4842                      7.39
      Latched                                  0.00
    Reads         164.05G  107.5k/s                            # 读
      From file   503.62k     0.3/s            0.00
      Ahead Rnd         0       0/s
      Ahead Sql                 0/s
    Writes        112.11M    73.5/s                            # 写
    Flushes         9.26M     6.1/s                            # 刷新
    Wait Free           0       0/s                            # 等待
    
    # InnoDB 缓冲池,如果是一个 InnoDB 存储引擎的数据库,该值越大越好
    
    __ InnoDB Lock _________________________________________________________
    Waits               0       0/s
    Current             0
    Time acquiring
      Total             0 ms
      Average           0 ms
      Max               0 ms
    
    # InnoDB 锁,零更好
    
    __ InnoDB Data, Pages, Rows ____________________________________________
    Data
      Reads       535.37k     0.4/s
      Writes       16.00M    10.5/s
      fsync         8.78M     5.8/s
      Pending
        Reads           0
        Writes          0
        fsync           0
    
    Pages
      Created     165.06k     0.1/s
      Read        922.49k     0.6/s
      Written       9.26M     6.1/s
    
    Rows
      Deleted       2.32M     1.5/s
      Inserted      7.41M     4.9/s
      Read         70.18G   46.0k/s
      Updated       1.04M     0.7/s
  • 相关阅读:
    【leetcode】1215.Stepping Numbers
    【leetcode】1214.Two Sum BSTs
    【leetcode】1213.Intersection of Three Sorted Arrays
    【leetcode】1210. Minimum Moves to Reach Target with Rotations
    【leetcode】1209. Remove All Adjacent Duplicates in String II
    【leetcode】1208. Get Equal Substrings Within Budget
    【leetcode】1207. Unique Number of Occurrences
    【leetcode】689. Maximum Sum of 3 Non-Overlapping Subarrays
    【leetcode】LCP 3. Programmable Robot
    【leetcode】LCP 1. Guess Numbers
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/8436444.html
Copyright © 2011-2022 走看看