zoukankan      html  css  js  c++  java
  • mysql慢查询,mysql慢查询日志

    mysql慢查询,mysql慢查询日志

    ================================

    ©Copyright 蕃薯耀 2020-11-27

    https://www.cnblogs.com/fanshuyao/

    一、配置文件设置慢查询,永久有效,一般不设置,只需要启动慢查询1、2天就行

    # 启动慢查询
    slow_query_log=1
    
    #不设置的话,默认为创建一个日志文件:C:ProgramDataMySQLMySQL Server 5.5datahost_name-slow.log
    #slow_query_log_file=不用设置了
    
    #慢查询阈值
    long_query_time=2
    
    #日志存储方式。log_output='FILE'表示将日志存入文件,默认值是'FILE'。
    #log_output='TABLE'表示将日志存入数据库。
    #table方式可以直接查表(SELECT * FROM mysql.slow_log; #需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。 log_output=FILE

    二、设置临时有效,重启失效

    SET GLOBAL slow_query_log=1;
    使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效,MySQL重启后则会失效。

    三、查看慢查询的配置信息

    SHOW VARIABLES  LIKE '%slow_query_log%';
    mysql> SHOW VARIABLES  LIKE '%slow_query_log%';
    +---------------------+----------------------------------------------------------------------+
    | Variable_name       | VALUE                                                                |
    +---------------------+----------------------------------------------------------------------+
    | slow_query_log      | ON                                                                   |
    | slow_query_log_file | C:ProgramDataMySQLMySQL SERVER 5.5DATAxxx-slow.log |
    +---------------------+----------------------------------------------------------------------+
    2 ROWS IN SET (0.00 sec)

    四、查看慢查询日志文件

    SHOW VARIABLES LIKE 'slow_query_log_file';
    mysql> SHOW VARIABLES LIKE 'slow_query_log_file';
    +---------------------+----------------------------------------------------------------------+
    | Variable_name       | VALUE                                                                |
    +---------------------+----------------------------------------------------------------------+
    | slow_query_log_file | C:ProgramDataMySQLMySQL SERVER 5.5DATAxxx-slow.log |
    +---------------------+----------------------------------------------------------------------+
    1 ROW IN SET (0.00 sec)

    五、设置慢查询阈值,默认是10秒

    SET GLOBAL long_query_time = 2;

    六、查询慢查询设置的时间

    #(需要重新连接或新开一个会话才能看到修改值)
    SHOW VARIABLES LIKE 'long_query_time';
    
    #或 
    #(下面为全局的,不需要新创建会话)
    SHOW GLOBAL VARIABLES LIKE 'long_query_time';
    mysql> SHOW VARIABLES LIKE 'long_query_time';
    +-----------------+-----------+
    | Variable_name   | VALUE     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 ROW IN SET (0.00 sec)
    
    
    mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
    +-----------------+-----------+
    | Variable_name   | VALUE     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 ROW IN SET (0.00 sec)
    
    #修改慢查询时间之后
    mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
    +-----------------+----------+
    | Variable_name   | VALUE    |
    +-----------------+----------+
    | long_query_time | 2.000000 |
    +-----------------+----------+
    1 ROW IN SET (0.00 sec)

    七、设置日志存储方式,FILE或者TABLE

    FILE 文件方式,得找到文件打开
    TABLE 方式可以直接查表(SELECT * FROM mysql.slow_log;)

    SET GLOBAL log_output = 'TABLE';

    查看慢查询输出的方式:FILE或者TABLE(设置输出方式:set global log_output='TABLE';)

    SHOW VARIABLES LIKE '%log_output%';
    mysql> SHOW VARIABLES LIKE '%log_output%';
    +---------------+-------+
    | Variable_name | VALUE |
    +---------------+-------+
    | log_output    | TABLE |
    +---------------+-------+
    1 ROW IN SET (0.00 sec)

    八、从表中查询慢查询语句

    SELECT * FROM mysql.slow_log;

    九、执行慢查询语句

    SELECT SLEEP(3);

    SLEEP(3)为等待3秒

    十、查询慢查询的sql语句

    SELECT * FROM mysql.slow_log l ORDER BY l.`start_time` DESC;

    十一、查看慢查询语句的数量

    SHOW GLOBAL STATUS LIKE '%Slow_queries%';
    mysql> SHOW GLOBAL STATUS LIKE '%Slow_queries%';
    +---------------+-------+
    | Variable_name | VALUE |
    +---------------+-------+
    | Slow_queries  | 2     |
    +---------------+-------+
    1 ROW IN SET (0.00 sec)

    十二、未使用索引的查询也记录到慢查询

    SHOW VARIABLES LIKE 'log_queries_not_using_indexes';

    开启了这个参数,其实使用full index scan的SQL也会被记录到慢查询日志。

    mysql> SHOW VARIABLES LIKE 'log_queries_not_using_indexes';
    +-------------------------------+-------+
    | Variable_name                 | VALUE |
    +-------------------------------+-------+
    | log_queries_not_using_indexes | OFF   |
    +-------------------------------+-------+
    1 ROW IN SET (0.00 sec)

    开启未使用索引的查询也记录到慢查询

    SET GLOBAL log_queries_not_using_indexes=1;

    ================================

    ©Copyright 蕃薯耀 2020-11-27

    https://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    方差分析
    Rust 指定安装目录
    perl 子函数传入多个数组
    perl 获取目录信息
    R绘图布局包 customLayout
    C语言 自定义函数按行读入文件2
    C语言 自定义函数按行读入文件
    C语言按行读入文件
    sed删除指定行
    mybatis 批量更新
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14049070.html
Copyright © 2011-2022 走看看