zoukankan      html  css  js  c++  java
  • MySQL Slow Log慢日志分析【转】

    如果你的MySQL出现了性能问题,第一个需要“诊断”的就是slow log(慢日志)了。

    slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。

    1. 基本使用

    $mysqldumpslow slow.log > slow.dat
    $more slow.dat

     

    输出的数据:

    Count: 3 Time=62.67s (188s) Lock=0.00s (0s) Rows=1623770.7 (4871312), root[root]@localhost
    SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`

    这里我们能够获得:这条语句在满日志中的出现次数、平均执行时间、总共执行时间、row send等。例如:SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`一共执行了3次,平均每次使用62秒。

    在默认情况下,mysqlslowdump的输出结果会使用N和S代替SQL中出现的数字和字符串。例如:如下慢日志

    SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=21621 AND f.suspended=-1 AND f.rater_type=4 AND f.rate=-2 AND f.username="orczhou.com"

    会被mysqlslowdump抽象为:

    SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=N AND f.suspended=-N AND f.rater_type=N AND f.rate=-N AND f.username="S"

    如果想禁用这种抽象,可以使用-a参数

    2. 排序参数

    mysqlslowdump默认输出结果是按照count(SQL出现的次数)排序的。可以通过如下的参数控制:

    -s t 按总query time排序 -s at 按平均query time排序
    -s l 按总locktime排序 -s al 按平均lock time排序
    -s s 按总row send排序 -s as 按平均row send排序
    -s c 按count排序 -- --

    例如:

    mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志

    3. 其他参数

    -r 倒着排序
    -a 不要将数字和字符串抽象成N和S
    -g 仅仅分析相匹配的query

     

    4. 常用命令

    由上面的常用参数就可以组合出如下的常用命令:

    mysqldumpslow -s t slow.log.old > slow.1.dat #按照query time排序查看日志
    mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志
    mysqldumpslow -a -s at slow.log.old > slow.3.dat #按照平均query time排序并且不抽象数字的方式排序
    mysqldumpslow -a -s c slow.log.old > slow.4.dat #安装执行次数排序
  • 相关阅读:
    Delphi xe8 FMX StringGrid根据内容自适应列宽。
    Delphi 10.3.1 Secure File Sharing解决应用间文件共享
    分享一个求时间差大于多少秒的函数
    解决android 9上无法使用http协议
    【转】FMX 动态创建及销毁(释放free)对象
    ChinaCock界面控件介绍-TCCBarcodeCreator
    IDE Fix Pack 6.4.4 released (bugfix release)
    Android & iOS 启动画面工具
    REST easy with kbmMW #24 使用kbmMW实现JSON/XML/YAML转换成对象
    关于ElasticSearch的聚类时出现fielddata=true问题
  • 原文地址:https://www.cnblogs.com/jamesbd/p/3582084.html
Copyright © 2011-2022 走看看