zoukankan      html  css  js  c++  java
  • 在线开启慢日志查询

    有时候我们会遇到线上突然运行比较慢,需要查看一下是否有慢查询。正常情况配置中是不会打开慢日志查询的,因为这个是消耗性能的,如果线上临时打开,又不能重启数据库,就需要通过命令在线设置。

    查询当前慢日志开启状态

    mysql> show variables like 'slow_query%';
    +---------------------+---------------------------------+
    | Variable_name       | Value                           |
    +---------------------+---------------------------------+
    | slow_query_log      | OFF                             |
    | slow_query_log_file | D:MysqlDataslow.log |
    +---------------------+---------------------------------+
    2 rows in set (0.01 sec)
    
    mysql> show variables like 'long_query_time';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.01 sec)
    

    可以看到当前慢日志查询开启状态是OFF,目录是D:MysqlDataslow.log,查询时间是10秒。

    开启慢日志查询设置对应参数

    mysql> set global slow_query_log='ON';
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> set global slow_query_log_file='D:\MysqlData\slow1.log';
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> set global long_query_time=1;
    Query OK, 0 rows affected (0.00 sec)
    

    我们打开了慢日志查询,设定了慢日志的目录和文件名,设置了慢日志的时间。

    查看状态确认修改成功

    mysql> show variables like 'slow_query%';
    +---------------------+------------------------+
    | Variable_name       | Value                  |
    +---------------------+------------------------+
    | slow_query_log      | ON                     |
    | slow_query_log_file | D:MysqlDataslow1.log |
    +---------------------+------------------------+
    2 rows in set (0.00 sec)
    
    mysql> show variables like 'long_query_time';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.00 sec)
    

    我们发现long_query_time还是10秒,这个更新需要我们重新连接一下。退出当前链接,重新登录查看:

    mysql> show variables like 'long_query_time';
    +-----------------+----------+
    | Variable_name   | Value    |
    +-----------------+----------+
    | long_query_time | 1.000000 |
    +-----------------+----------+
    1 row in set (0.01 sec)
    

    我们看到查询时间已经变了。

    测试

    执行一条慢查询

    select sleep(2);
    

    查看D:MysqlDataslow1.log文件,如下:

    # Time: 2020-11-05T05:55:44.393317Z
    # User@Host: root[root] @ localhost [::1]  Id:     4
    # Query_time: 2.000115  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
    SET timestamp=1604555744;
    select sleep(2);
    

    配置文件

    除了在线打开,也可以在配置文件中配置,一般不建议打开,会影响性能。

    [mysqld]
    slow-query-log=1
    slow_query_log_file="slow.log"
    long_query_time=10
    

    配置文件会随着数据库的启动而加载,如果修改了配置文件,想要起作用需要重启数据库服务。

  • 相关阅读:
    Ed Chi 的 long range dependence works
    论文阅读:Stochastic Weight Completion for Road Networks using Graph Convolutional Networks
    论文阅读:HOP-Rec: High-Order Proximity for Implicit Recommendation
    温故BERT之Transformer
    论文阅读:Are We Really Making Much Progress-A Worrying Analysis of Recent Neural Recommendatin Approaches
    使用ffmpeg进行媒体格式转换
    使用ghostscript将pdf转图片
    linux下使用libreoffice将Office文档转PDF
    nginx指定文件路径有两种方式root和alias
    CentOS下的SVN服务器搭建过程
  • 原文地址:https://www.cnblogs.com/studywithallofyou/p/13931358.html
Copyright © 2011-2022 走看看