MySQL
查询优化器在基于成本和规则对一条查询语句进行优化后,会生成一个执行计划。这个执行计划展示下来执行查询的具体方式,比如多表连接的顺序是什么,查询什么方法来具体查询每个表等。而EXPLAIN
语句可以让我们查看某个语句的具体执行计划。
列名 | 描述 |
---|---|
id | 在一个大的查询语句中,每个SELECT关键字都对应一个唯一的id |
select_type | SELECT关键字对应的查询的类型 |
table | 表名 |
partitions | 匹配的区分信息 |
type | 针对单表的访问方法 |
possible_keys | 可能用到的索引 |
keys | 实际用到的索引 |
key_len | 实际使用的索引长度 |
ref | 当使用索引列等值查询时,与索引列进行等值匹配的对象信息 |
rows | 预估的需要读取的记录条数 |
filtered | 针对预估的需要读取的急剧,经过搜索条件过滤后的剩余记录条数的百分比 |
Extra | 一些额外的信息 |
在EXPLAIN
单词和真正查询语句中间加上FORMAT=JSON
,可以得到JSON
格式的执行计划。
在使用EXPLAIN
语句查看了某个查询的执行计划后,紧接着还可以使用SHOW WARNINGS
语句产看这个查询的执行计划有关的扩展信息。