zoukankan      html  css  js  c++  java
  • MySQL 慢查询

    什么是慢查询

      就是很慢的查询啦,那多慢才算慢呢?这个你说了算,你要是觉得0.000000000000秒都算慢,那么就是说,你将每一条查询都认为是慢查询。

    慢查询有什么用呢

      没啥用,如果没有慢查询才好呢

      有慢查询的时候,证明该优化数据库或者查询语句了,只是一个相当于日志的概念,没事找事。

      

    查询相关项的开启状态

    #查看是否开启慢查询日志
    mysql> show variables like 'slow_query_log';
    +----------------+-------+
    | Variable_name  | Value |
    +----------------+-------+
    | slow_query_log | OFF   |
    +----------------+-------+
    1 row in set (0.06 sec)
    
    #查看是否开启没有使用索引的查询
    mysql> show variables like '%log_qu%';
    +-------------------------------+-------+
    | Variable_name                 | Value |
    +-------------------------------+-------+
    | log_queries_not_using_indexes | OFF   |
    +-------------------------------+-------+
    1 row in set (0.00 sec)
    
    #一个查询超过多少秒会被记录到慢查询日志中(如果是0,则表示每条命令都要记录)
    mysql> show variables like '%long_query%';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.01 sec)
    

      

    开启慢查询

    #开启慢查询
    mysql> set global slow_query_log=ON;
    Query OK, 0 rows affected (0.07 sec)
    
    #查看慢查询状态、以及慢查询的日志文件
    mysql> show variables like 'slow_query%';
    +---------------------+------------------------------------------+
    | Variable_name       | Value                                    |
    +---------------------+------------------------------------------+
    | slow_query_log      | ON                                       |
    | slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
    +---------------------+------------------------------------------+
    2 rows in set (0.00 sec)
    
    #设置查询超时时间,此处设为0,表示将每一条命令都记录到慢查询日志中
    mysql> set @@long_query_time = 0.000000;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like '%long_query%';
    +-----------------+----------+
    | Variable_name   | Value    |
    +-----------------+----------+
    | long_query_time | 0.000000 |
    +-----------------+----------+
    1 row in set (0.00 sec)
    
    mysql> set global log_queries_not_using_indexes=on;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like 'log_queries_not_using_indexes';
    +-------------------------------+-------+
    | Variable_name                 | Value |
    +-------------------------------+-------+
    | log_queries_not_using_indexes | ON    |
    +-------------------------------+-------+
    1 row in set (0.00 sec)
    

      

    测试

    mysql> select * from category left join goods on category.id=goods.cate_id order by category.id;
    +----+---------+------+---------+-------------------+
    | id | cate    | id   | cate_id | name              |
    +----+---------+------+---------+-------------------+
    |  1 | food    |    2 |       1 | water             |
    |  1 | food    |    3 |       1 | rice              |
    |  2 | clothes |    1 |       2 | T-shirt           |
    |  3 | book    |    4 |       3 | C++ primer        |
    |  4 | sport   |    5 |       4 | basketbal         |
    |  5 | music   |    0 |       5 | You Are Not Alone |
    |  6 | video   | NULL |    NULL | NULL              |
    +----+---------+------+---------+-------------------+
    7 rows in set (0.00 sec)
    
    #查看慢查询日志
    localhost:~ root# cat /usr/local/mysql/data/localhost-slow.log
    
    # Time: 180730 15:54:14
    # User@Host: root[root] @ localhost []  Id:    10
    # Query_time: 0.000582  Lock_time: 0.000181 Rows_sent: 7  Rows_examined: 20
    SET timestamp=1532937254;
    select * from category left join goods on category.id=goods.cate_id order by category.id;
    

    使用mysqldumpslow

    localhost:~ root# mysqldumpslow -t 10 /usr/local/mysql/data/localhost-slow.log
    
    Reading mysql slow query log from /usr/local/mysql/data/localhost-slow.log
    Count: 10  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=7.0 (70), root[root]@localhost
      select * from category left join goods on category.id=goods.cate_id order by category.id
    

      

      

      

      

      

      

  • 相关阅读:
    c# 图片保存为流Stream,再次加载时提示System.ArgumentOutOfRangeException: 要求非负数的解决办法
    VS 2019 Git failed with a fatal error的解决办法
    IIS安全狗卸载后,IIS8.5,网站无法访问的解决方法
    sqlserver 全文检索提高精确度的一个方法
    Win10应用商店打不开的解决办法
    Dapper解析嵌套的多层实体类
    Aspose.Words转换为PDF的时候字体丢失的问题解决
    IIS ASP.NET MVC 上传文件到NAS目录
    windows xp .net framework 4.0 HttpWebRequest 报The underlying connection was closed,基础连接已关闭
    c# 计算中文字节数与JAVA不符的解决方法
  • 原文地址:https://www.cnblogs.com/-beyond/p/9391105.html
Copyright © 2011-2022 走看看