mysql 查询优化
https://blog.csdn.net/xiaojin21cen/article/details/84058694
id -> selectType -> type -> possible_keys -> key -> ref -> rows -> Extra
select_type
表示查询中每个select子句的类型
type
对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。
ALL、index(全索引扫描)、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)
复合索引中,range 会导致后面列的索引失效
复合索引 ( a , b , c)
,一般情况下,支持a=?
、a,b
、a,b,c
3种索引。
如果 a 使用的 range ,则 b ,c 列 索引失效。
如果 b 使用的 range , 则 c 列 索引失效。
range 比 index索引 要好
因为 range 开始于索引的某一点,而结束于索引的另一点,不用扫描全部索引。
possible_keys
指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用(该查询可以利用的索引,如果没有任何索引显示 null)
Key
key列显示MySQL实际决定使用的键(索引),必然包含在possible_keys中
ref
使用索引的列
rows
查找到结果集需要扫描读取的数据行数。
Extra
在其他列中没有显示,但是十分重要的额外信息。
Using filesort, Using index, Using temporary, Using where