博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql explain
阅读量:6908 次
发布时间:2019-06-27

本文共 923 字,大约阅读时间需要 3 分钟。

Mysql Explain

id

  • id相同时,执行顺序由上至下;
  • 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行;
  • id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行.

select_type 表示了查询的类型, 它的常用取值有:

  • SIMPLE, 表示此查询不包含 UNION 查询或子查询
  • PRIMARY, 表示此查询是最外层的查询
  • UNION, 表示此查询是 UNION 的第二或随后的查询
  • DEPENDENT UNION, UNION 中的第二个或后面的查询语句, 取决于外面的查询
  • UNION RESULT, UNION 的结果
  • SUBQUERY, 子查询中的第一个 SELECT

type列:这一列表示关联类型或访问类型,即MySQL决定如何查找表中的行

依次从最优到最差分别为:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

key

这一列显示mysql实际采用哪个索引来优化对该表的访问。

rows

这一列是mysql估计要读取并检测的行数,注意这个不是结果集里的行数。

Extra

这一列展示的是额外信息。常见的重要值如下:

  • distinct: 一旦mysql找到了与行相联合匹配的行,就不再搜索了。
  • Using index:这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。是性能高的表现
  • Using where:mysql服务器将在存储引擎检索行后再进行过滤。就是先读取整行数据,再按 where
    条件进行检查,符合就留下,不符合就丢弃。
  • Using filesort:mysql
    会对结果使用一个外部索引排序,而不是按索引次序从表里读取行。此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下一般也是要考虑使用索引来优化的。

转载地址:http://sqfcl.baihongyu.com/

你可能感兴趣的文章
MySQL日志
查看>>
【node】----mocha单元测试框架-----【格尔尼卡ぃ】
查看>>
POJ 1172 DFS
查看>>
选中列得到员工原来的信息
查看>>
C++ 强制类型转换
查看>>
关于属性的一些常用技巧
查看>>
解决8080端口占用问题
查看>>
8.Java5原子性操作类的应用
查看>>
Python中的for...else...搭配
查看>>
paypal支付页面语言版本问题
查看>>
A JavaScript Image Gallery
查看>>
框架Django
查看>>
操场边的人
查看>>
内存泄漏和内存溢出
查看>>
设计模式——初步学习
查看>>
metabase实施文档
查看>>
10.3 定位连续值范围的开始点和结束点
查看>>
解析iscroll-小demo
查看>>
基站定位接口说明文档
查看>>
java实现邮件定时发送
查看>>