• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL慢查询日志的基本使用教程

    慢查询日志相关参数

    MySQL 慢查询的相关参数解释:slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。

    一. 设置方法

    使用慢查询日志里捕获

    启用之前需要先进行一些设置

    方法一:全局变量设置

    设置慢查询日志的日志文件位置

    set global slow_query_log_file = "D:/slow_log/slow_log.log" ;

    设置是否对未使用索引的SQL进行记录

    set global log_queries_not_using_indexes = on;

    设置只要SQL执行时间超过n秒的就记录

    set global long_query_time = 0.001 ;

    此处设置的0.001秒,便于测试,一般情况比这个大

    启用mysql慢查询日志

    set global slow_query_log = on;

    方法二:配置文件设置

    修改配置文件my.cnf,在[mysqld]下的下方加入

    [mysqld]
    slow_query_log = ON
    log_queries_not_using_indexes = ON;
    slow_query_log_file = /usr/local/mysql/data/slow.log
    long_query_time = 1

    查看设置后的参数

    show variables like 'slow_query%';
    show variables like 'long_query__time';

    二. 慢查询日志记录的内容

    Time   Id Command Argument
    # Time: 2019-01-08T04:12:09.269315Z 
    # User@Host: h5_test[h5_test] @ localhost [::1] Id: 12 
    # Query_time: 0.000831 Lock_time: 0.000198 Rows_sent: 1 Rows_examined: 3 
    use mc_productdb;
    SET timestamp=1546920729;
    SELECT t.customer_id,t.title,t.content 
    FROM (
    SELECT customer_id FROM product_comment WHERE product_id =199726 AND audit_status = 1 LIMIT 0,15
    )a JOIN product_comment t 
    ON a.customer_id = t.comment_id;

    三. 如何分析慢查询日志

    Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
    
    Parse and summarize the MySQL slow query log. Options are
    
     --verbose verbose
     --debug debug
     --help write this text to standard output
    
     -v  verbose
     -d  debug
     -s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is default
      al: average lock time
      ar: average rows sent
      at: average query time
       c: count
       l: lock time
       r: rows sent
       t: query time
     -r  reverse the sort order (largest last instead of first)
     -t NUM just show the top n queries
     -a  don't abstract all numbers to N and strings to 'S'
     -n NUM abstract numbers with at least n digits within names
     -g PATTERN grep: only consider stmts that include this string
     -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
      default is '*', i.e. match all
     -i NAME name of server instance (if using mysql.server startup script)
     -l  don't subtract lock time from total time

    由于慢查询日志中会含有大量的重复的SQL,为了方便,可以通过mysql提供的命令行工具 mysqldumpslow 来分析日志

    $ mysqldumpslow.pl slow_log.log
    
    Reading mysql slow query log from slow_log.log
    Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=0.0 (0), 0users@0hosts
     C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N-log (MySQL Community Server (GPL)). started with:
     TCP Port: N, Named Pipe: MySQL
     # Time: N-N-08T04:N:N.269315Z
     # User@Host: h5_test[h5_test] @ localhost [::N] Id: N
     # Query_time: N.N Lock_time: N.N Rows_sent: N Rows_examined: N
     use mc_productdb;
     SET timestamp=N;
     SELECT t.customer_id,t.title,t.content
     FROM (
     SELECT customer_id FROM product_comment WHERE product_id =N AND audit_status = N LIMIT N,N
     )a JOIN product_comment t
     ON a.customer_id = t.comment_id

    与慢查询日志中记录的数据是相似的,只是多出了一行Count,这一行记录的是这条SQL在记录慢查询日志期间的执行次数,如果一个SQL多次被执行,用这个命令分析时,只会出现一个SQL日志,Count里的数值代表执行次数,其他数字为了合并表示用N代替

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • MYSQL慢查询和日志实例讲解
    • MYSQL慢查询与日志的设置与测试
    • MySQL 慢查询日志的开启与配置
    • MySQL5.7慢查询日志时间与系统时间差8小时原因详解
    • MySQL开启慢查询日志功能的方法
    • 关于Mysql通用查询日志和慢查询日志分析
    • MySQL慢查询日志的配置与使用教程
    • MySQL 开启慢查询日志的方法
    • 详解MySql的慢查询分析及开启慢查询日志
    • MySQL 慢查询日志深入理解
    上一篇:MySQL InnoDB 二级索引的排序示例详解
    下一篇:MySQL分区表的正确使用方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL慢查询日志的基本使用教程 MySQL,慢,查询,日志,的,基本,