美文网首页
MySQL系列 -- 查找慢SQL

MySQL系列 -- 查找慢SQL

作者: tom_xin | 来源:发表于2018-10-24 08:44 被阅读0次

        日常的项目中经常会遇到各种各样的慢SQL查询,对于如何查找到慢SQL,MySQL提供了一些配置选项,可以帮助我们即使的查找到项目中的慢SQL。

    查找慢SQL的配置参数

    slow_query_log: 该参数表示是否开启慢SQL查询日志。在mysql中,我们可以通过以下命令来查看和修改该变量的状态:

    show variables like '%slow_query_log%'  #查询该变量在MySQL中当前的状态。
    set slow_query_log = ON/OFF     #开启慢查询监控ON,关闭慢查询监控OFF
    

    long_query_time:设置该参数,可以规定执行多长时间的SQL为慢SQL。

    show variables like '%long_query_time%'  #查询该变量在MySQL中的状态
    set long_query_time = 6    #设置SQL执行时间超过6S,就当作慢SQL输出
    

    slow_query_log_file:设置该参数,可以将慢SQL输出到指定的规定的日志文件。

    show variables like '%slow_query_log_file%'   #查询该变量在MySQL中的状态
    set slow_query_log_file = /home/admin/mysql/log/slow_sql.log  #指定慢SQL输出的日志文件
    

    log_queries_not_using_indexes:该参数设置为ON,可以输出所有未使用索引的SQL语句。

    show variables like 'log_queries_not_using_indexes' #查询该变量在MySQL中的状态
    set log_queries_not_using_indexes = ON/OFF #设置该变量值打开或关闭
    

    log_output:可以通过该参数,指定慢SQL输出到表或文件中。如果输出到表中在mysql.slow_log表中可以查看。

    show variables like 'log_output'  #查询该变量在MySQL中的状态
    set log_output = table/FILE  #设置慢SQL输出到table或file
    set log_output = 'table,FILE' #设置慢SQL同时输出到table和file
    

    慢SQL分析命令

    mysqldumpslow:该命令可以很好的帮助我们分析慢SQL输出日志文件中的SQL语句。下面列出经常使用的命令参数:
    al,平均锁定时间
    ar,平均返回记录时间
    at,平均查询时间
    c,计数
    l,锁定时间
    r,返回记录
    t,查询时间

    以上为显示参数

    -s,order的顺序
    -t,是top n的意思,即为返回前多少条的数据
    -g,后面可以写一个正则匹配模式,大小写不敏感
    下面我们来看一个简单的事例

    # 执行mysqldumpslow命令时,需要在mysql的bin目录下执行。
    mysqldumpslow t r l -t 10 -g "join" /home/admin/mysql/log/slow_log.log
    

    相关文章

      网友评论

          本文标题:MySQL系列 -- 查找慢SQL

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