• MySQL慢查询语句的定位


    使用以下语句可以查询相关的配置和日志所在位置:

    show variables like '%slow%';

     

     名词解释:

    log_slow_admin_statements: 打开后可以将一些比较慢的管理语句,如optimize table,analyze table,alter table 等操作写入到慢查询语句。

    log_slow_slave_statements: 可以将一些复制查询的语句写入到慢查询log中

    slow_launch_time: 判定thread create是否超过阈值,超过这个值得语句将会被写入到log中。

    slow_query_log:是否写慢查询log的开关

    slow_query_log_file:慢查询日志所在的相对路径,默认在数据库的管理目录下,windows在C:ProgramDataMySQLMySQL Server 5.7Data下。

    可以使用这个语句,实时的查询当前的慢查询语句:

    show global status like '%slow%';

     

     显示累计到当前的所有慢查询的数目。

    使用以下语句,查询当前慢查询的SQL语句的阈值:

    show variables like '%long_query_time%';

     

    long_query_time: 当查询语句超过这个阈值,将会把SQL语句记录到慢日志里。

    我们可以使用一些命令动态去启动,关闭和更改这些设置这一设置

    SET GLOBAL slow_query_log =’ON’|’OFF’;

    SET GLOBAL long_query_time = 3;

    也可以去配置文件下进行手工配置,打开默认的配置文件my.cnf或者my.ini:

    log-output=FILE

    general-log=0

    general_log_file="WIN-GSQ7DOK3HEL.log"

    slow-query-log=1

    slow_query_log_file="WIN-GSQ7DOK3HEL-slow.log"

    long_query_time=5

    slow_launch_time =3

     重启MySQL服务,可以看到相应的参数以全局的形式被修改。

    我们可以打开对应目录下的*************-slow.log 可以看一些执行比较慢的语句:

    Notepad看到的日志可读性较差,可以使用notepad++等工具来查看,效果会比较好:

     

     当然我们也可以使用Mysql自带的工具来查看日志,可以快速的提取我们需要的重要信息:

    mysqldumpslow -r -t 2 日志目录-slow.log

    注意:如果没有perl环境需要首先安装perl环境,并在perl的bin目录下执行以下命令:

    Perl mysqldumpslow.pl的路径 + mysqldumpslow -r -t 2 -a 日志目录-slow.log

    命令会展示出,系统中最慢的两条语句并按照升序排列。

  • 相关阅读:
    《C++反汇编与逆向分析技术揭秘》--构造函数 读书笔记
    《C++反汇编与逆向分析技术揭秘》--虚函数 读书笔记
    VPP-main() 源码学习
    【转】几种TCP连接中出现RST的情况
    动态追踪学习
    RCU学习总结
    内核栈回溯原理学习应用
    《C++反汇编与逆向分析技术揭秘》--单类继承 读书笔记
    C# 防火墙操作之创建规则
    C# 防火墙操作之特定程序
  • 原文地址:https://www.cnblogs.com/wanghao4023030/p/8652266.html
Copyright © 2020-2023  润新知