MySQL慢日志

作者: 编程界的小学生 | 来源:发表于2017-03-10 22:34 被阅读38次

    定义

    Paste_Image.png

    小建议

    Paste_Image.png

    如何查看是否开启了慢日志
    SHOW VARIABLES LIKE '%slow_query_log%';

    Paste_Image.png

    如何开启慢日志
    SET GLOBAL slow_query_log = 1;
    关闭是0
    SHOW VARIABLES LIKE '%slow_query_log%';

    Paste_Image.png

    注意:开启慢日志也只是对本次服务有效,若重启mysql服务,将自动变成默认的关闭状态。那如何永久开启呢?(不推荐,毕竟浪费性能,只建议在测试的时候开启一天看下哪里的sql慢)

    永久开启办法
    修改配置文件my.cnf,[mysqld]下增加或修改参数
    slow_query_log和slow_query_log_file后,然后重启MySQL服务器。也即将如下两行配置进my.cnf文件

    slow_query_log=1
    slow_query_log_file=C:\ProgramData\MySQL\MySQL Server 5.5\Data\OutOfMemoryError-slow.log
    

    如何查看慢日志的时间?
    SHOW VARIABLES LIKE 'long_query_time%';

    Paste_Image.png
    默认10秒,大于(不是大于等于,是大于)10s的就记录到慢日志log里。

    如何设置慢日志的时间
    SET GLOBAL long_query_time=3;
    设置为3秒

    注意:修改慢日志时间后,有两种方式可以查看是否修改成功

    (一)
    SHOW GLOBAL VARIABLES LIKE 'long_query_time%';
    (二)新开一个mysql窗口运行如下:
    SHOW VARIABLES LIKE 'long_query_time%';
    因为没有GLOBAL,所以需要新开个窗口,好比刷新一下

    Paste_Image.png

    测试慢日志
    由于目前没sql执行3秒以上,所以无法记录,可以用sleep方法进行测试
    SELECT sleep(4); //睡上4秒
    会发现在log位置生成了慢日志log文件,里面记录了time(sql运行时间)、哪条sql慢以及哪个数据库。

    日志分析工具mysqldumpslow
    Paste_Image.png Paste_Image.png

    若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
    欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:


    qrcode_for_gh_577b64e73701_258.jpg

    相关文章

      网友评论

        本文标题:MySQL慢日志

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