【MySQL】explain命令详解(二)

explain命令的表头

4、type

表示该查询的类型,有如下8种值:

  1. system:表示表中只有一行记录。
  2. const:通过索引查找,且一次找到记录,针对主键或唯一键的索引,如用户ID。

      例子中,主键作为where子句的条件,且为单个值,作为常量处理,即id为2的查询为const类型;由于子查询只有一行记录,因此外层查询是system类型的。

      3. eq_ref:通过索引进行查找,每个索引都只有唯一一行记录匹配,找到一条记录后就停止了检索,常见主键和唯一索引。(唯一性索引扫描)

     4.ref:通过索引进行查找,返回匹配一个值的所有行。索引值也是一个常量,但可能有多个符合条件的行,所以在找到一条记录后不能马上停止检索。(非唯一性索引扫描)

      例子中 ,col1='ac'是通过索引col1和常量'ac'来查找的,但可能有多个符合条件的值。

      5.range:查找过程中只找给定范围的行,一般是SQL条件语句中出现<、>、between、in等表示范围的关键字。

     6.index:通过遍历索引树进行查找。

      7.ALL:全表扫描,效率最低,若项目中常出现此类型的查询,需要进行优化。

 一般保证查询达到range级别以上

5、possible_keys

    查询中可能用到的索引,不一定被MySQL使用。

6、keys

    在实际查询中用到的索引,如果没有索引或者索引失效,则该值为NULL

    注意:如果查询用到了覆盖索引(一个索引包含所有需要查询的字段的值),则该索引不会出现在possible_keys中,只会出现在keys中。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值