zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    kubernetes部署Ingress Controller创建证书
    污点和容忍度
    Kubernetes部署coredns
    python中私有属性和私有方法
    类的约束
    reactjs 入门
    angularjs ngTable -Custom filter template-calendar
    sql 中条件in参数问题
    详解 nginx location ~ .*.(js|css)?$ 什么意思?
    CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11
  • 原文地址:https://www.cnblogs.com/dw3306/p/13915741.html
Copyright © 2011-2022 走看看