• 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

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

  • 相关阅读:
    Unity 绘制带颜色的流线 streamline
    Tinyply 源码阅读
    题解 [BZOJ2952]长跑
    莫比乌斯反演技巧
    题解 pyh的求和
    Java Web基础
    后端常用数据持久层模板及框架以及一些工具类模板的配置使用集合
    12306火车订票系统(C++)
    C++/Java文件读写并执行相关操作、文件复制、文件格式转换等(举例)
    《Java EE编程技术》综合应用系统开发_作业管理系统_Struts2_设计报告
  • 原文地址:https://www.cnblogs.com/wanghao4023030/p/8652266.html
Copyright © 2020-2023  润新知