• MySQL EXPLAIN性能分析


    :1、是什么

      使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句。分析你的查询语句或是表结构的性能瓶颈。

    2、能干嘛

    1. 获取表的读取顺序;
    2. 哪些索引可以使用;
    3. 数据读取操作的操作类型;
    4. 哪些索引被实际使用;
    5. 表之间的引用;
    6. 每张表有多少行被物理查询;

    3、字段说明

       3.1 id

        表示查询中执行select子句或操作表的顺序;

        每个id号码,表示一趟独立的查询。一个sql的查询躺输越少越好。

        id相同,执行顺序自上而下;

        id不同,值大的先执行;

      3.2 type

        最好system > const > eq_ref >ref >range > index >all,一般来说,得保证查询至少达到range级别,最好能达到ref级别。

      • system:表只有一行记录;
      • const:表示通过索引一次就找到了,const用于pk或unique索引的;
      • eq_ref:唯一性索引扫描;
      • ref:非唯一性索引扫描;
      • range:只检索了范围;
      • index:使用了索引但是没用通过索引进行过滤,一般是使用了覆盖索引或是利用索引进行了排序分组;
      • All:全表扫描;

      3.3 key_len

        命中索引长度,组合索引中命中长度越大效率越高。

      3.4 rows

        物理扫描行数,越少越好。

      3.5 extra

        包含不适合在其他列中显示但十分重要的额外信息;

      • Using filesort:order by没用上索引,手工排序,效率低;
      • Using temporary:group by(包含一个order by)没用上索引,效率更低;
      • Using index:用了索引;
      • Using where:where条件使用了索引;
      • Using join buffer:两个表关联字段没用上索引;
      • impossible where:sql条件有问题;
      • select tables optimized away:使用了优化器;

      3.6 其他的信息没太大用处

  • 相关阅读:
    apt 安装 Oracle Java JDK
    apt 安装 tomcat
    apt安装mysql
    yum 常用命令
    Ubuntu apt-get 更换源
    没有解决不了的bug,静下心一步步排查,早上一个小时就找出问题了
    关于看书学习的一点感悟
    利用暗时间看好了六大原则,下面开始练习23种设计模式
    养成看书思考的习惯
    凡事预则立,有时候还是得不断的去巩固一些基础知识的
  • 原文地址:https://www.cnblogs.com/xp2h/p/12463552.html
Copyright © 2020-2023  润新知