zoukankan      html  css  js  c++  java
  • MySQL-慢日志slow log

    文件结构

    1.目录结构

    drwxrwxr-x  2 mysql mysql  4096 Mar 25  2019 bin
    drwxrwxr-x  2 mysql mysql  4096 Dec 19 14:52 binlogdir
    -rw-r--r--  1 mysql mysql 17987 Nov 29  2018 COPYING
    drwxrwxr-x 10 mysql mysql  4096 Oct 23 16:55 data
    drwxrwxr-x  2 mysql mysql  4096 Nov 29  2018 docs
    drwxrwxr-x  2 mysql mysql  4096 Aug  6  2019 etc
    drwxrwxr-x  3 mysql mysql  4096 Nov 29  2018 include
    drwxrwxr-x  5 mysql mysql  4096 Nov 29  2018 lib
    drwxrwxr-x  2 mysql mysql  4096 Dec 10 10:41 logs
    drwxrwxr-x  4 mysql mysql  4096 Nov 29  2018 man
    -rwxr-xr-x  1 mysql mysql  6856 Mar 25  2019 mysql.server
    -rw-r--r--  1 mysql mysql  2478 Nov 29  2018 README
    drwxrwxr-x 28 mysql mysql  4096 Nov 29  2018 share 包含MySQL初始化的一些SQL脚本以及错误代码,本地语言文件
    drwxrwxr-x  2 mysql mysql  4096 Nov 29  2018 support-files 单实例起停和多实例起停脚本
    drwxrwxr-x  2 mysql mysql  4096 Oct 23 16:55 tmp

    2.文件

    慢日志

    参考:

    https://www.cnblogs.com/kerrycode/p/5593204.html

    https://blog.csdn.net/weixin_39004901/article/details/89918236

    https://www.iteye.com/blog/asyty-1202943

    1.位置记录参数

    slow_query_log            | ON                                        |  是否打开慢日志
    slow_query_log_file       | /data/mysql/jin1_mysql/logs/jin1-slow.log |  慢日志路径
    

      

    2.限制参数

    • log_output :日志格式.默认为FILE,还可以设置成TABLE
    • slow_launch_time:
    • long_query_time = 2 #表示慢查询阈值,SQL执行时间超过该值,则会记录到慢查询日志中。SQL的执行耗时不包含锁等待时间
    • log_queries_not_using_indexes=on #记录没有使用索引的查询语句。!可能导致日志文件激增,谨慎使用。配合log_throttle_queries_not_using_indexes 使用
    • log_throttle_queries_not_using_indexes #表示每分钟允许记录到slow log的且未使用索引的sql语句次数。配合long_queries_not_using_indexes开启使用。默认值为0表示没有限制
    • min_examined_row_limit = 1000 #对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中;
    • log_slow_admin_statements #该参数决定是否记录管理类的命令,有 ALTER TABLE,ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE,REPAIR TABLE,默认是不记录这一类语句到慢日志。;
    • log_slow_slave_statements #从库应用binlog,如果binlog格式是statement,执行时间超过阈值时,将写入从库的慢查询日志, 对于ROW格式binlog,不管执行时间有没有超过阈值,都不会写入到从库的慢查询日志。
    • 其中min_examined_row_limit参数表示SQL执行过程中扫描的行数阈值,如果扫描的行数小于该参数设置的值,即使SQL执行耗时大于慢查询阈值,也不会记录到慢查询日志中,该参数默认值为0。如果设置为非0值,管理语句将无法计入慢日志,比如DDL语句影响的行数总是视为0.
    • slow_launch_time=# 表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加

    3.慢日志内容

    ----------------------------------------

    # Time: 2020-02-17T23:35:20.373370+08:00
    # User@Host: admin[admin] @ [127.0.0.1] Id: 110
    # Query_time: 0.002527 Lock_time: 0.000289 Rows_sent: 21 Rows_examined: 1026
    SET timestamp=1581953720;
    show variables like 'log%';

    -----------------------------------------

    第一行,SQL查询执行的时间 第二行,执行SQL查询的连接信息,用户和连接IP 第三行,记录了一些我们比较有用的信息,如下解析:
    - Query_time,这条SQL执行的时间,越长则越慢
    - Lock_time,在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间
    - Rows_sent,查询返回的行数,最终返回给客户端的行数
    - Rows_examined,查询检查的行数,越长就当然越费时间,查询语句在存储引擎中的检查记录数
    第四行,设置时间戳,没有实际意义,只是和第一行对应执行时间。
    第五行及后面所有行(第二个# Time:之前),执行的sql语句记录信息,因为sql可能会很长。

    设置成table格式输出:

    set global log_output='TABLE';

       
    select * from mysql.slow_logG
    start_time: 2020-02-18 00:35:10.725995
         user_host: admin[admin] @  [127.0.0.1]
        query_time: 00:00:00.000255
         lock_time: 00:00:00.000000
         rows_sent: 0
     rows_examined: 0
                db: jinhailan
    last_insert_id: 0
         insert_id: 0
         server_id: 12085
          sql_text: show processlist
         thread_id: 112
    

      慢查询语句中,获取锁的时间不计入执行时间,慢查询日志记录的执行时间为:在获取锁之后,并在语句执行完成之后,将锁释放之前.所以,慢查询日志中记录语句的顺序可能与M有SLQ服务器接收到的与 语句的顺序并不相同,因为有的语句可能先执行,但是最后释放了锁.

    以下是慢日志记录逻辑判断,治好了我的颈椎

    Q:MySQL的slow log中Query_time包含了lock_wait_time吗?

    A:

    1、Query_time为SQL的消耗时间,包括了Lock_time

    2、Lock_time为锁等待的时间,包括行锁、MDL锁等

    3、是否记录slow log的判定条件为SQL的实际执行时间(Query_time - Lock_time)是否超过long_query_time,或者是否开启log_queries_not_using_indexes

  • 相关阅读:
    poj 3666 Making the Grade
    poj 3186 Treats for the Cows (区间dp)
    hdu 1074 Doing Homework(状压)
    CodeForces 489C Given Length and Sum of Digits...
    CodeForces 163A Substring and Subsequence
    CodeForces 366C Dima and Salad
    CodeForces 180C Letter
    CodeForces
    hdu 2859 Phalanx
    socket接收大数据流
  • 原文地址:https://www.cnblogs.com/asea123/p/10078090.html
Copyright © 2011-2022 走看看