possible_keys指出MySQL能使用哪个索引在该表中找到行。如果为空,则没有相关的索引。这时,可以通过检查WHERE子句是否引用某些字段或者检查字段是否适合索引来提高性能。key显示了MySQL实际决定使用的键。如果没有索引被选择,键是NULL。key_len显示了MySQL决定使用的键长度。如果键是NULL,长度也是NULL。文档...
mysql explan 怎么解读,如图
在MySQL的explain结果中,没有使用子查询和联合查询,表结构表示你所理解的表类型。type显示了联合查询所使用的类型,这是非常重要的一个指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL。
possible_keys指出MySQL能使用哪个索引在该表中找到行。如果为空,则没有相关的索引。这时,可以通过检查WHERE子句是否引用某些字段或者检查字段是否适合索引来提高性能。
key显示了MySQL实际决定使用的键。如果没有索引被选择,键是NULL。key_len显示了MySQL决定使用的键长度。如果键是NULL,长度也是NULL。文档提示特别注意这个值可以得出一个多重主键里MySQL实际使用了哪一部分。
ref显示了与key一起被使用的字段或常数。rows表示MySQL要遍历多少数据才能找到,在InnoDB上是不准确的。
Extra提供了关于查询的额外信息。如果是Only index,这意味着信息只用索引树中的信息检索出的,这比扫描整个表要快。如果是where used,表示已经使用上了where限制。如果是impossible where,表示用不着where,一般就是没查出来啥。
如果Extra信息显示Using filesort或者Using temporary的话会很吃力。这是因为WHERE和ORDER BY的索引经常无法兼顾。如果按照WHERE来确定索引,那么在ORDER BY时,就必然会引起Using filesort。这时就需要权衡先过滤再排序划算,还是先排序再过滤划算。2024-12-18