zoukankan      html  css  js  c++  java
  • MYSQL的慢查询分析

    1、日志记录(slow.log)

    long_query_time是用来定义慢于多少秒的才算慢查询
    mysql> show variables like 'long%';
     +-----------------+-----------+
     | Variable_name   | Value     |
     +-----------------+-----------+
     | long_query_time | 10.000000 | 
     +-----------------+-----------+
     1 row in set (0.00 sec)
    long_query_time定义慢查询的时间阀值
    mysql> set long_query_time=1;
    Query OK, 0 rows affected (0.00 sec)

    慢查询相关变量说明

    mysql> show variables like 'slow%';
    +---------------------+---------------+
    | Variable_name       | Value         |
    +---------------------+---------------+
    | slow_launch_time    | 2             | 
    | slow_query_log      | ON            |
    | slow_query_log_file | /tmp/slow.log |
    +---------------------+---------------+
    3 rows in set (0.00 sec)

    设置记录开关

    //打开日志
    mysql> set global slow_query_log='ON'
    //未使用索引的查询也作记录
    mysql>
    set global log_queries_not_using_indexes='ON';
    
    

    2、mysqldumpslow命令

    mysqldumpslow -s c -t 10 /tmp/slow-log
    
    -s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
    -t, 是top n的意思,即为返回前面多少条的数据;
    -g, 后边可以写一个正则匹配模式,大小写不敏感的;

    mysqldumpslow -s r -t 10 /tmp/slow-log 得到返回记录集最多的10个查询。
    mysqldumpslow -s t -t 10 -g “left join” /tmp/slow-log 得到按照时间排序的前10条里面含有左连接的查询语句

    备注:

    查找mysql错误日志

    show variables like '%log_error%';
    show variables like 'log_%'

  • 相关阅读:
    Give root password for maintenance(or press Control-D to continue)
    docker swarm 拉2副本 及磁盘映射
    删除 Docker私有仓库镜像文件
    docker swarm 从私有仓库拉取 创建2个docker副本
    mysqldump 备份导出数据排除某张表
    node递归属性目录结构
    MySql批量更新方法
    npm 发布包
    实例学习Backbone.js(一)
    node.js中log4js的使用
  • 原文地址:https://www.cnblogs.com/yudis/p/5655601.html
Copyright © 2011-2022 走看看