explain select * from account where id=1;
+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| 1 | SIMPLE | account | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | NULL |
**+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------**
- id:执行计划的id值,值越大,表示执行的优先级越高
- select_type:当前查询语句的类型
- simple:简单查询
- primary:复杂查询的外层查询
- subquery:包含在查询语句中的子查询
- derived:包含在FROM中的子查询
- table:表示当前这个执行计划是基于哪张表执行的
- type:当前执行计划查询的类型,情况如下
- all:全表查询,未命中索引或索引失效
- system:查询表中仅有一条数据
- const:当前SQL语句的查询条件中,可以命中索引查询
- range:当前查询操作时差某个区间
- eq_ref:表示在做多表关联查询
- ref:使用了普通索引
- index:目前SQL使用了辅助索引查询
- possible_keys:优化器可能会选择的索引
- key:查询语句执行用到的索引
- key_len:索引字段使用的字节数
- ref:使用了哪种查询类型
- rows:可能会扫描的行数
- filtered:通过表条件过滤出的行数百分比估计值
- Extra:额外的索引使用信息
- using index:覆盖索引查询
- using where:使用了where子查询,表示没有使用索引
- using ndex condition:使用了联合索引的前几个字段
- using temporary:使用临时表处理查询结果
- using filesort:索引字段之外进行排序,效率较低
- select tables optimized away:在索引字段上使用了聚合函数