zoukankan      html  css  js  c++  java
  • Mysql的慢查询

    1.1. 什么是慢查询

    慢查询日志,顾名思义,就是查询慢的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。

    1.2. 慢查询配置

    1.2.1. 慢查询基本配置

    •  slow_query_log 启动停止技术慢查询日志
    • slow_query_log_file 指定慢查询日志得存储路径及文件(默认和数据文件放一起)
    • long_query_time 指定记录慢查询日志SQL执行时间得伐值(单位:秒,默认10秒)
    • log_queries_not_using_indexes  是否记录未使用索引的SQL
    • log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】

    配置了慢查询后,它会记录符合条件的SQL

    包括:

    • 查询语句
    • 数据修改语句
    • 已经回滚得SQL

    1.2.2. 实操:

    通过下面命令查看下上面的配置:

    show VARIABLES like '%slow_query_log%'

    show VARIABLES like '%slow_query_log_file%'

    show VARIABLES like '%long_query_time%'

    show VARIABLES like '%log_queries_not_using_indexes%'

    show VARIABLES like 'log_output'

    设置慢查询的参数:

    set global long_query_time=0;   ---默认10秒,这里为了演示方便设置为0

    set GLOBAL  slow_query_log = 1; --开启慢查询日志

    set global log_output='FILE,TABLE'  --项目开发中日志只能记录在日志文件中,不能记表中

    设置完成后,查询一些列表可以发现慢查询的日志文件里面有数据了。

    但是在我的电脑上,不知道为啥,这个时间总是不能正常的执行sql结果。更新不了;

    所以我们用这样的方法就可以了:

    找到my.cnf,添加如下内容

    # 添加慢查询日志
    log_output=file
    slow_query_log=on
    slow_query_log_file = /tmp/mysql-slow.log
    log_queries_not_using_indexes=on
    long_query_time = 1

    1.3. 慢查询分析

    慢查询的日志记录非常多,要从里面找寻一条查询慢的日志并不是很容易的事情,一般来说都需要一些工具辅助才能快速定位到需要优化的SQL语句,下面介绍两个慢查询辅助工具

    1.3.1.  Mysqldumpslow

    常用的慢查询日志分析工具,汇总除查询条件外其他完全相同的SQL,并将分析结果按照参数中所指定的顺序输出。

    语法:

    mysqldumpslow -s r -t 10 slow-mysql.log

    -s order (c,t,l,r,at,al,ar)

             c:总次数

             t:总时间

             l:锁的时间

             r:总数据行

             at,al,ar  :t,l,r平均数  【例如:at = 总时间/总次数】

      -t  top   指定取前面几天作为结果输出

    执行 mysqldumpslow.pl 要安装一个程序,这个是prel命令,具体的可以参考

    https://jingyan.baidu.com/article/9f7e7ec0b798ae6f281554e9.html

  • 相关阅读:
    BaseServlet的编写
    两个线程交替打印1-100
    java集合中的HashMap源码分析
    mybatis一级缓存与二级缓存的原理
    mybatis的执行流程
    spring IOC的理解
    一文彻底搞懂面试中常问的各种“锁”
    Dubbo相关的基础
    Servlet基础
    文件传输基础
  • 原文地址:https://www.cnblogs.com/lys-lyy/p/11183812.html
Copyright © 2011-2022 走看看