美文网首页
【MySql】开启MySQL慢查询日志

【MySql】开启MySQL慢查询日志

作者: Y了个J | 来源:发表于2018-07-19 23:59 被阅读12次

    修改my.cnf

    在配置文件my.cnf(一般为/etc/my.cnf)中的[mysqld] 下面增加如下参数。

    [mysqld]
    #表示开启慢查询,0表示关闭
    slow_query_log = 1
    #指定慢查询日志路径,需要MySQL对该路径有写权限,不指定用默认也可以
    slow_query_log_file = /logs/mysql/slow-query.log
    #表示查询时间>=1秒才记录日志,默认10s
    long_query_time = 1
    #表明记录没有使用索引的 SQL 语句
    log_queries_not_using_indexes = 1
    

    重启MySQL服务

    sudo systemctl restart mysqld.service
    重启MySQL后会看到/var/lib/mysql/slow-query.log文件。

    检查参数

    $ show variables like 'slow_query_log'
    $ show variables like 'slow_query_%'
    $ show global slow_query_log_file= '/'
    $ show variables like '%log%'
    $ show variables like 'long_query_time'
    $ show variables like 'slow%'
    
    $ set global log_queries_not_using_indexes=on;
    $ set global long_query_time=1;  
    $ set global slow_query_log=on;  //开启慢查询
    

    慢查询日志的分析工具 - mysqldumpslow
    mysqldumpslow是MySQL自带的分析慢查询的工具。该工具是Perl脚本。
    常用参数如下。


    屏幕快照 2018-08-01 下午2.37.54.png

    获取访问次数最多的5个SQL语句
    mysqldumpslow -s c -t 5 /logs/mysql/slow-query.log
    按照时间排的top 5个SQL语句
    mysqldumpslow -s t -t 5 /logs/mysql/slow-query.log
    按照时间排序且含有'like'的top 5个SQL语句
    mysqldumpslow -s t -t 3 -g "like" /logs/mysql/slow-query.log

    默认情况下,MySQL不启动慢查询日志。若要检查慢查询,需要我们手动设置这个参数。一般情况下,若非调优需要,不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

    Java实现把图片上传到图片服务器(nginx+vsftp)
    https://www.jianshu.com/p/67fc9148f95a

    相关文章

      网友评论

          本文标题:【MySql】开启MySQL慢查询日志

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