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

    1.1 什么是mysql慢查询

    1、MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。
    2、运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。
    3、long_query_time的默认值为10,意思是记录运行10秒以上的语句

    1.2 查找那些语句慢

    # 比如,得到返回记录集最多的10个SQL。
    mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
    
    # 得到访问次数最多的10个SQL
    mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
    
    # 得到按照时间排序的前10条里面含有左连接的查询语句。
    mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log
    
    # 另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
    mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

    1.3 explain分析慢查询原因

    1、使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。
    
    2、EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
    3、explain的执行效果
    mysql> explain select * from subject where id = 1 G
    ******************************************************
               id: 1
      select_type: SIMPLE
            table: user             # 表示访问那个表
       partitions: NULL
             type: const
    possible_keys: PRIMARY
              key: PRIMARY           # 使用了主键索引,如果为null代表没有使用索引
          key_len: 4                # 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
              ref: const
             rows: 1
         filtered: 100.00             # 查询的表行占表的百分比
            Extra: NULL
    ******************************************************
  • 相关阅读:
    大前端工具集
    Python黑魔法,一行实现并行化
    MRPT
    ./configure 交叉编译库时所最常用到的配置
    Ubuntu16.04 ARM 编译 编译器版本和unordered_map map问题
    ubuntu 16.04 ARM glog移植
    Ubuntu16.04 ARM平台移植libcurl curl-7.63.0
    ubuntu16.04 ARM平台移植xmlrpc-c1.39.12
    ubunt 14.04 Could not find CMAKE_ROOT !!! CMake has most likely not been installed correctly. Modul
    ubuntu PCL的使用
  • 原文地址:https://www.cnblogs.com/xiaoxiamiaichiyu/p/14586683.html
Copyright © 2011-2022 走看看