explain
select id from testtable
1.id列
- id列中的数据为一组数字,表示执行select语句的顺序
- id值相同时,执行顺序由上到下
- id值越大优先级越高,越先被执行
2.select_tyoe列
3.table列
4.partitions列
- 对于分区表,显示查询的分区id
- 对于非分区表,显示为null
5.type
6.extra列
7.possible_keys列
- 指出mysql能使用那些索引来优化查询
- 查询列所涉及到的列上的索引都会被列出,但不一定会被使用
8.key列
- 查询优化器优化查询实际所使用的索引
- 如果没有可用的索引,则显示为null
- 如查询使用列覆盖索引,则该索引仅出现在key列中
9.key_len列
- 表示索引字段的最大可能的长度
- key_len的长度由字段定义计算而来,并非数据的实际长度
10.ref列
- 表示那些列或者常量被用于查找索引列上的值
11.rows列
- 表示mysql通过索引统计信息,估算的所需读取的行数
- rows值的大小是个统计抽样结果,并不十分准确
12.filtered列
- 表示返回结果的行数占需读取行数的百分比
- filtered列的值越大越好
- filtered列的值依赖说统计信息