explain命令的表头
【MySQL】explain命令详解(三)

7、ken_len

索引中使用的字节数,可通过该列计算使用索引的长度。该列显示的是索引字段的最大可能长度,并不是实际使用的长度,是根据表定义计算得出的,不是通过表内检索得出。该列长度越短查找越快。
【MySQL】explain命令详解(三)

8、 ref

表示使用了索引的哪一列或是索引了一个常量值
【MySQL】explain命令详解(三)

9、rows

估算找到对应记录需要检索的行数,基于查找的type和索引使用情况key、key_len综合得出。该值越小,查询越快。
【MySQL】explain命令详解(三)

10、Extra

额外信息

  1. Using filesort:使用外部索引排序,而非按照表内索引顺序读取。在MySQL中无法按照索引完成的排序称为文件排序。
    【MySQL】explain命令详解(三)

  2. Using temporary
    使用到临时表来保存查询中间结果,在对查询结果排序时用到了临时表,常见排序查询和分组查询,应尽量避免
    【MySQL】explain命令详解(三)

  3. Using index
    查询使用了覆盖索引,避免了访问表的数据行,效率有显著提升。
    同时出现Using where,则表示索引被用来执行索引键值的查找;如果没有出现,表示索引用来读取数据而非查找。
    【MySQL】explain命令详解(三)

  4. Using where
    使用了where子句

  5. Using join buffer
    使用了连接缓存

  6. impossible where
    where子句的值总是false,不能用来获取任何元组
    【MySQL】explain命令详解(三)

  7. select tables optimized away
    没有使用group by子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引擎优化COUNT(*)操作,不需要等到执行阶段进行计算,而是查询执行计划生成的时候完成优化。

  8. distinct
    优化distinct操作,即找到了第一个匹配值后就不再继续查找。

相关文章:

  • 2021-05-17
  • 2021-12-03
  • 2021-09-05
  • 2021-12-28
  • 2021-12-07
  • 2021-05-29
猜你喜欢
  • 2021-09-09
  • 2021-03-31
  • 2021-08-22
  • 2021-07-15
  • 2021-09-27
  • 2021-08-31
  • 2021-10-01
相关资源
相似解决方案