zoukankan      html  css  js  c++  java
  • 详解慢查询日志的相关设置及mysqldumpslow工具

    概述

    mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句。
    今天主要介绍怎么用mysqldumpslow工具来监控慢查询日志。

    一、慢查询日志的相关设置

    1、查看是否开启慢查询日志:
    show variables like '%slow_query_log%';
    2、配置文件设置
    #设置慢查询阀值,单位为秒
    long_query_time=30
    slow_query_log=1 #开启mysql慢sql的日志
    log_output=table,File #日志输出会写表,也会写日志文件,为了便于程序去统计,所以最好写表
    slow_query_log_file=/data/log/slow.log
    3、不重启设置慢查询:
    set global log_output='TABLE'; -- 输出到表
    set global general_log = on; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.
    set global slow_query_log = on; -- 打开慢查询sql记录slow_log
    set global long_query_time=30; -- 慢查询时间限制(秒)
    set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql语句
    --查询
    select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句
    4、查询有多少条慢查询记录
    show global status like '%Slow_queries%';

    二、mysqldumpslow 慢日志分析工具

    命令:
    -s 按照那种方式排序
    c:访问计数
    l:锁定时间
    r:返回记录
    al:平均锁定时间
    ar:平均访问记录数
    at:平均查询时间
    -t 是top n的意思,返回多少条数据。
    -g 可以跟上正则匹配模式,大小写不敏感。
    实例:
    1、得到返回记录最多的20个sql
    mysqldumpslow -s r -t 20 slow.log
    2、得到平均访问次数最多的20条sql
    mysqldumpslow -s ar -t 20 slow.log
    3、得到平均访问次数最多,并且里面含有mq字符的20条sql
    mysqldumpslow -s ar -t 20 -g "mq" slow.log
    这里提示Died at /usr/bin/mysqldumpslow line 161, <> chunk 8.的报错是因为有 -t 20这一句,那么就是要显示出前20个记录,但我的slow.log统计出来只有1个不到20个,而这里有继续遍历到20的话,那进程肯定会Died。
  • 相关阅读:
    luogu p1268 树的重量——构造,真正考验编程能力
    luogu p2330[SCOI05] 繁忙的都市——瓶颈生成树
    生成树的个数——基尔霍夫定理(Matrix-Tree Theorem)
    子序列最大和
    有关pascal的填充语句小技巧
    P2320 [HNOI2006]鬼谷子的钱袋
    DP专题——括号序列
    简单的迷宫(bfs)noj1793
    G:献给阿尔吉侬的花束(可能超时)
    ytu 2335: 0-1背包问题
  • 原文地址:https://www.cnblogs.com/johnnyblog/p/11372398.html
Copyright © 2011-2022 走看看