explain各个字段代表的意思

  • id:联表查询是每个表的读取顺序,数字越大越先被读取。相同就需要通过table字段判断
  • select_type:查询类型或者是其他操作类型(PRIMARY、UNION、UNION RESULT等)
  • table:正在访问哪个表
  • partitions:匹配的分区
  • type: 访问的类型
  • passible_keys:可能使用到的索引,不一定会用到
  • key:实际使用到的索引,如果为null,则没有使用索引
  • key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引长度
  • ref:显示索引的哪一列被使用了,如果可能的话,是一个常数,哪些列或常量被用于查找索引列上的值
  • rows:根据表统计信息及索引选用情况,数据库估算出的一个数据
  • filtered:查询的表行占表的百分比,和row很相似
  • Extra:包含不适合在其它列中显示但十分重要的额外信息

重点字段分析

type

NULL > system > const > eq_ref > ref > ref_or_null > index_merge > range > index > ALL

上面就是type列可能会出现的10个字段,越靠左效率越高。

  • NULL表示不需要查询数据库,例如 select 5 * 7
    -system表只有一行记录是才会出现,基本不会出现
  • const表示通过索引以下就找到了数据,例如通过主键id(唯一键)直接查询 select * from table where id = 5
  • eq_ref表示联表查询时,按联表的主键或唯一键联合查询
  • ref表示联表查询时,驱动表的一条记录能在被驱动表中通过主键来匹配一行或多行数据
  • ref_or_null类似ref,但是可以搜索NULL的行
  • index_merge表示查询使用了两个以上的索引,然后将它们的结果取交集或者并集
  • range表示索引范围查询,常见于<,>,IS NULL,IN()等
  • index_index表示只遍历索引树,但是是读索引的全表,因为索引比全表数据能小点,所以性能好于ALL
  • ALL表示全表扫描,并且表的数量很大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值