美文网首页一些收藏
mysql如何找出慢sql

mysql如何找出慢sql

作者: joy_蓝蜘蛛 | 来源:发表于2022-03-18 17:55 被阅读0次

    一、如何查看慢sql:

    long_query_time 参数的查看
    默认是10秒,10秒以上的sql会记录。可进行值的修改,
    long_query_time 默认不开启 ,如果不是需要进行开始调优,一般不建议开启此参数。

    二、查看是否开启

    show variables like '%slow_query_log%'
    
    图1

    三、临时开启:重启后失效

    set global slow_query_log = 1
    

    永久开启:
    在my.cnf中的

    [mysqld]
    slow_query_log = 1
    slow_query_log_file = /usr/local/mysql/data/appledeMacBook-Pro-slow.log
    

    四、修改慢查询的默认数值

    1.查看慢查询的时长

    show variables like 'long_query_time'
    
    图2

    看此图默认10秒,是大于10秒,不等于10秒。
    2.修改此时长
    临时修改,重启mysql后失效,修改后需要新开连接才能查询到

    set global long_query_time = 3
    

    永久在配制文件中修改

     [mysqld]
    long_query_time = 3
    

    查看慢sql个数

    show global status like '%slow_queries%';
    
    图4

    将所有没有使用带索引的查询语句全部写到慢查询日志中

    show variables like '%log_queries_not_using_indexes%'
    

    设置没带索引的慢sql进行记录

    set global log_queries_not_using_indexes = 1
    

    最后汇总my.cnf配制

     [mysqld]
    #开启慢sql
    slow_query_log = 1
    #msql存放位置
    slow_query_log_file = /usr/local/mysql/data/appledeMacBook-Pro-slow.log
    #慢sql的值大于多少秒
    long_query_time = 3
    #日志输出为文件
    log_output=file
    #将所有没有使用带索引的查询语句全部写到慢查询日志中
    set global log_queries_not_using_indexes = 1
    
    image.png 7C29754D-6934-4B75-AFD5-A12972494446.png

    相关文章

      网友评论

        本文标题:mysql如何找出慢sql

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