zoukankan      html  css  js  c++  java
  • 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 其他的信息没太大用处

  • 相关阅读:
    Info.plist的秘密(raywenderlich笔记)
    我所理解的性能测试中负载测试与压力测试的区别
    seo优化
    localStorage,sessionStorage那些事儿
    浏览器cookie那些事儿
    JavaScript--Ajax请求
    javascript-理解原型、原型链
    React Native:从入门到原理
    知道这 20 个正则表达式,能让你少写 1,000 行代码
    程序猿进化必读:让App的运行速度与响应速度趋于一流(iOS)
  • 原文地址:https://www.cnblogs.com/xp2h/p/12463552.html
Copyright © 2011-2022 走看看