mysql explain输出格式
一.使用方法
格式:explain + select查询语句
eg:explain select * from user;
二.输出列
| 列 | 含义 | 备注 |
| id | 查询标识符id | |
| select_type | select类型 | |
| table | 输出行的表 | |
| partitions | 匹配的分区 | |
| type | 连接类型 | 从好到坏排序:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL |
| possible_keys | 可供选择的索引 | |
| key | 实际选择的索引 | |
| key_len | 所选键的长度 | 越短越好 |
| ref | 索引的哪一列被使用了 | |
| rows | 估计也检查的行数 | |
| filtered | 按表条件过滤的行的百分比 | 最大为100,这意味着不会对行进行过滤。rows*filtered表示与下表连接的行数。越小越好 |
| Extra | 附加信息 |
type
| 列 | 含义 | 备注 |
| system | 该表只有一行 | |
| const(常数) | 该表最多只有一个匹配行,在查询开头读取。因为只有这一行,所以优化器的其余部分可以将此行中的列视为常量。const非常快,因为它们只读一次 | |
| eq_ref | 唯一性索引扫描,对于每个索引键,表中都只有一条记录与其匹配。常见于主键或唯一索引扫描 | |
| ref(参考) | 非唯一索引扫描 | |
| fulltext | 全文索引检索,要注意,全文索引的优先级很高,若全文索引和普通索引同时存在时,mysql不管代价,优先选择使用全文索引 | |
| ref_or_null | 与ref方法类似,只是增加了null值的比较。 | |
| index_merge | 表示查询使用了两个以上的索引,最后取交集或者并集,常见and ,or的条件使用了不同的索引.效率不是很高 关键字:索引合并 | |
| unique_subquery | 用于where中的in形式子查询,子查询返回不重复值唯一值 | |
| index_subquery | 用于in形式子查询使用到了辅助索引或者in常数列表,子查询可能返回重复值,可以使用索引将子查询去重。 | |
| range(范围) | 仅检索给定范围内的行,使用索引选择行。key列显示使用了哪个索引,一般就是在你的where语句中出现了between、<、>、in等的查询,这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束于另一点,不会扫描全部索引。 | |
| index(指数) | 该联接类型与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小。查询只使用作为单索引一部分的列时,MySQL可以使用该联接类型。 | |
| ALL(全部) | 对于每个来自于先前的表的行组合,进行完整的表扫描 |
Extra
| 行 | 含义 |
备注 |
| Distinct | 一旦MYSQL找到了与行相联合匹配的行,就不再搜索了 | |
| Not exists | MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,就不再搜索了 | |
| using filesort | 常见于order by 字段 无法走索引造成,文件排序。看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行。需要注意优化,复杂条件可以选择建立联合索引进行优化。 | |
| using join buffer size | 常见于join连接,并且连接字段无法走索引时造成,缓存存储记录,BML优化,需要注意优化 | |
| using tempoary | MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上,需要注意优化,需要注意当应用到索引时,不一定出现 | |
| using index | 覆盖索引,索引列可以覆盖所有的查询字段,不用回表读取数据文件,代表最优 | |
| using where | WHERE 子句用于限制哪一个行匹配下一个表或发送到客户。需要回表操作,会增加IO问题,出现的情况特征 1 select查询的字段有非辅助索引和主键索引的其他值 2 select查询的条件有非辅助索引和主键索引的其他值 注意点 1 using where单独出现情况需要回表 |
浙公网安备 33010602011771号