zoukankan      html  css  js  c++  java
  • mysql5.7慢查询配置,即慢查询检查,slow log

    【慢查询配置】

    show VARIABLES like 'slow_query_log';      -- 是否开启了慢查询
    set GLOBAL slow_query_log=1;               -- 启用慢查询
    show VARIABLES like '%long_query_time%';   -- 多慢算慢呢?默认10秒 
    set GLOBAL long_query_time=0;              -- 任何SQL都记录为慢SQL,方便我们观察慢SQL日志
    show VARIABLES like '%log_queries_not_using_indexes%';      -- 记录没有使用到索引的SQL, 默认是OFF不打开
    set global log_output='FILE';               -- 慢查询日志的记录方式:文件 FILE、表 TABLE,默认是文件
    show VARIABLES like 'slow_query_log_file';  -- 慢查询日志的存储log文件名,例如:mysql57-slowsql.log

    以上这些set语句的配置,都可以在my.cnf配置文件里设置,比如在my.cnf里添加一行新配置:long_query_time=0.01  代表慢于0.01秒的SQL将被记录为慢SQL

     【慢查询日志文件】

    这里仅列举当slow_query_log_file设置为FILE日志文件格式的例子。

     根据slow_query_log_file可以找到slow log的日志文件名,然后到mysql的data目录下找slow log文件,查看慢SQL日志文件内容,每一次慢查询的记录在日志文件里长这样:

    SET timestamp=1623770266;         -- 代表执行记录时间
    SELECT * FROM `mytest`.`t_user` LIMIT 0;    -- 慢SQL
    # Time: 2021-06-15T15:17:46.832361Z         -- 执行开始时间
    # User@Host: root[root] @ localhost [::1]  Id:     4        -- 执行User是root,执行主机是localhost,执行线程是4
    # Query_time: 0.000153  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0    -- Query_time查询了多久毫秒,Lock_time锁定了多久毫秒,Rows_sent查询了多少结果集条数发给用户,Rows_examined扫描了多少行数,才得到了最终结果集。

     【使用mysqldumpslow命令分析慢SQL】

    先来查看下slow log文件本身长啥样:

     

     centos8下,可在该路径:/usr/bin/mysqldumpslow  下找到mysqldumpslow这个执行命令文件,可对slow log文件进行指定命令查找: 

    ./mysqldumpslow -S r -t 2 /var/lib/mysql/localhost-slow.log    --  这里-S参数后面跟的r是row的缩写,意思是从slow log里查找按照返回行数最高排序,默认是at即平均执行时间。-r 后面跟着的数字是返回几个结果,类似于limit

     

      ./mysqldumpslow --help       -- 查看命令有哪些可用参数

    几个重要参数罗列:

    -s order (c,t,l,r,at,al,ar) 
             c:总次数
             t:总时间
             l:锁的时间
             r:获得的结果行数
             at,al,ar :指t,l,r平均数  【例如:at = 总时间/总次数】
    -s 对结果进行排序,怎么排,根据后面所带的 (c,t,l,r,at,al,ar),缺省为at
    -g PATTERN   grep: only consider stmts that include this string:通过grep来筛选语句。

    end.

    支付宝扫一扫,为女程序员打赏!
    作者:梦幻朵颜
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Mysql 重做日志及与二进制日志的区别
    【MySql】性能优化之分析命令
    ubuntu一些基本软件安装方法
    Linux学习笔记
    exp/imp三种模式——完全、用户、表
    Oracle学习日志20150302
    如何在macOS Sierra中运行CORE Keygen破解程序
    国内各大互联网公司技术站点集合
    React Native资料
    React Native集成到现有项目(非cocoa pods)
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/14887577.html
Copyright © 2011-2022 走看看