• mysql 慢查询日志分析与使用


    mysql 慢查询日志分析与使用

    查询是否开启: SHOW VARIABLES LIKE '%slow_query_log%';

    开启:SET GLOBAL slow_query_log=1;  mysql重启后会失效,如果需要永久生效(生产环境不建议一直开启,会损耗性能。)可以修改my.cnf文件加入如下配置,然后重启mysql。

    slow_query_log=1

    slow_query_log_file=/usr/local/mysql/slog-sql.log

    那么开启了慢查询后,什么样的sql才会被记录到慢查询日志里面呢?

    这个是由参数long_query_time控制,默认情况下,long_query_time 的值为10秒。

    设置慢查询时间命令:SHOW VARIABLES LIKE '%long_query_time%';

    可以使用命令修改,也可以在my.cnf配置文件中修改,假如运行时间正好等于long_query_time 并不会被记录下来,在mysql的源码中是判断大于long_query_time的sql才会被记录下来。

    设置慢sql 的阈值时间:SET GLOBAL long_query_time=3;

    查询当前系统有多少慢sql: SHOW GLOBAL STATUS LIKE '%Slow_queries%';

    Mysql: 提供的日志分析工具:mysqldumpslow:

    常用日志分析命令:

    1: 得到返回记录集最多的10个sql:

    mysqldumpslow -s r -t 10  /usr/local/mysql/slow-sql.log

    2: 得到访问次数最多的10个慢sql:

    Mysqldumpslow -s c -t 10 /usr/local/mysql/slow-sql.log

    3:mysqldumpslow -s  t  -t  10 -g  “left join” /usr/local/mysql/slow-sql.log

    另外建议防止数量过多建议搭配 | more 使用:

    mysqldumpslow -s  t  -t  10 -g  “left join” /usr/local/mysql/slow-sql.log  | more

  • 相关阅读:
    SilkTest Q&A 5
    SilkTest Q&A 6
    产生n不同随机数的算法
    根据日期计算星期小算法
    Linux $( )与${ }的区别
    UVA 10313(完全背包变形)
    HDU 4277 USACO ORZ
    Android Studio上手,基于VideoView的本地文件及流媒体播放器
    Mina框架项目运用
    【iOS】怎样推断文本文件的字符编码格式
  • 原文地址:https://www.cnblogs.com/dw3306/p/13915741.html
Copyright © 2020-2023  润新知