MySql性能分析——Explain

Explain

  • 表的读取顺序
  • 数据读取操作的操作类型
  • 哪些索引可以使用
  • 哪些索引被实际使用
  • 表之间的引用
  • 每张表有多少行被优化器查询

在这里插入图片描述

id:

id不同,如果是子查询,id序号会递增,id值越大,优先级越高,越先被执行
id相同,执行的顺序是由上至下
如果id既有相同也有不同,那么先执行id大的,id相同的依然由上至下依次执行

select_type

simple: 简单的select查询
primary: 查询中若包含任何复杂子部分,最外层就是该标记
subquery:在select或where列表中包含了子查询
derived:在from列表中包含的子查询被标记为衍生(DERIVED)
union:若第二个select出现在union之后,则被标记为union
union RESEULT:从union表获取结果的select

type

system > const > eq_ref > ref > range > index > ALL

system :表只有一行记录,不会出现
const: 通过索引一次就找到,例如where里面是个唯一索引或者主键索引的等值查询

possible_keys和keys还有keys_len

possible_keys和keys
可能使用到的索引和实际用到的索引,若key为null则没有使用索引
查询中若使用了覆盖索引,那么该索引只会出现在key列表中

keys_len
显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义

extra:

using filesort mysql无法利用索引完成排序,使用到了外部索引的排序

using temporary使用了临时表保存中间结果,mysql在对查询结果排序时使用了临时表。常用于排序的order by和分组查询的group by

using index 表示相应的select操作使用了覆盖索引,避免了访问表的数据行,效率不错,如果同时出现using where表明用来执行索引键值查找,如果没有出现,表明索引用来读取数据而非执行查找操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值