美文网首页
mysql 慢查询日志: 开启配置与使用

mysql 慢查询日志: 开启配置与使用

作者: 田丰w | 来源:发表于2021-12-05 17:26 被阅读0次

    查看是否打开慢查询日志记录

    show variables like 'slow_query_log%';
    show variables like 'long_query_time';
    show variables like 'log_output';

    +---------------------+-------------+
    | Variable_name       | Value       |
    +---------------------+-------------+
    | slow_query_log      | ON          |
    | slow_query_log_file | xxx-slow.log |
    +---------------------+-------------+
    
    +-----------------+----------+
    | Variable_name   | Value    |
    +-----------------+----------+
    | long_query_time | 1.500000 |
    +-----------------+----------+
    
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_output    | TABLE |
    +---------------+-------+
    
    

    slow_query_log: 是否开启慢查询日志
    slow_query_log_file: 慢查询日志文件(如果使用文件存储日志的话)
    long_query_time: 超过多长时间(单位:秒)被判定为慢查询
    log_output: 以什么方式存储日志. TABLE:存储到表(mysql.slow_log), FILE:存储为文件, 'TABLE,FILE':表和文件都存一份. 取值为 'FILE' 时, 慢查询保存在 slow_query_log_file 指定的文件里

    设置慢查询

    set global slow_query_log=1;
    set global slow_query_log_file='xxx-slow.log';
    set global long_query_time=2.0;
    set global log_output='TABLE';

    重新连接后生效

    修改配置文件以默认打开慢查询日志

    MySQL/MariaDB 默认配置文件位置 /etc/my.cnf , [mysqld]下添加配置

    [mysqld]
    slow_query_log = on  # 开启慢日志查询
    long_query_time = 1.0  # 把查询时间超过1.0秒的定义为慢查询
    log_output = 'TABLE'  # 保存日志到mysql数据库的slow_log表.其他的取值 'FILE'或者 'FILE,TABLE'. 
    #slow_query_log_file=slow_query_log.txt  #将日志保存带本地文件中.默认值是<机器名>-slow.log 默认目录为 datadir 所在目录.
    

    重启服务
    sudo systemctl restart mysqld.service

    查看慢查询日志

    人为制造一个慢查询,看看慢查询日志里的记录

    select sleep(3);

    select * from mysql.slow_log \G

    *************************** 1. row ***************************
        start_time: 2021-12-05 16:47:45.522862
         user_host: root[root] @  [192.168.1.108]
        query_time: 00:00:03.000338
         lock_time: 00:00:00.000000
         rows_sent: 1
     rows_examined: 0
                db: tmp_db
    last_insert_id: 0
         insert_id: 0
         server_id: 0
          sql_text: select sleep(3)
         thread_id: 5
     rows_affected: 0
    1 row in set (0.00 sec)
    

    参考:
    朱双印-mysql/mariadb知识点总结(24):慢查询日志

    相关文章

      网友评论

          本文标题:mysql 慢查询日志: 开启配置与使用

          本文链接:https://www.haomeiwen.com/subject/cfzixrtx.html