一,显示结果
1,id,select 查询标识符,每个select都会自动匹配一个唯一的标识符
2,select_type: select查询类型
SIMPLE,表示此查询不包含UNION查询或子查询
PRIMARY,表示此查询是最外层的查询
SUBQUERY,子查询中的第一个Select
DEPENTDENT SUBQUERY:子查询中的第一个Select ,取决于外面的查询,级子查询依赖于外层查询的结果
UNION:表示此查询是UNION的第二或随后查询
3,table:查询那个表
4,partitions:匹配的分区
5,type , join类型,链接类型
all<index<range-index_merge<ref<eq-ref<const<system
system:表只有一行
const:表最多只有一行匹配,通用于逐渐或者唯一索引比较时
eq_ref:每次与之前的表合并都只在该表读取一行,特点是使用=,并且索引所有的部分都参与join,且索引是主键或非空唯一键索引
ref:如果每次只匹配少数行,使用=或<=>,可以是左覆盖索引,或者非主键或非唯一键
index_merge 表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。
这个比较复杂,目前的理解是合并单表的范围索引扫描(如果成本估算比普通的range要更优的话
index a.当查询是索引覆盖的,即所有数据均可从索引树获取的时候(Extra中有Using Index);
b.以索引顺序从索引中查找数据行的全表扫描(无 Using Index);
c.如果Extra中Using Index与Using Where同时出现的话,则是利用索引查找键值的意思;
d.如单独出现,则是用读索引来代替读行,但不用于查找
all 全表扫描
6,possible_keys: 此次查询中可能选用的索引
7, key: 此次查询中确切使用到的索引.
8, ref: 哪个字段或常数与 key 一起被使用
9,rows: 显示此查询一共扫描了多少行. 这个是一个估计值.
10, filtered: 表示此查询条件所过滤的数据的百分比
11, extra: 额外的信息