緊接上文。性能
type字段有以下類型:優化
1.all.net
2.index設計
3.rangblog
4.ref索引
5.eq_refget
6.const,systemselect
7.nullim
最好到最差的順序爲:統計
system>const>eq_red>ref>range>index>all
優化的標準爲至少達到range級別,最好是ref級別。
system 表只有一行記錄,這是const類型的特列,基本不會出現。
const:表示經過一次就找到了,const 通常是在primary_key 或者 unique 索引。由於只匹配一行數據,因此很快。
eq_ref:惟一索引掃描,對每一個索引鍵,只有一條記錄與之匹配。
ref:非惟一索引掃描,返回匹配某個值的全部行。
range:只檢索給定範圍的行,使用一個索引來選擇行。通常出如今between、>、<、in等查詢中。
index:select id from t1 這時候是找出所有的索引,而沒必要去掃描表。
all 表示全表掃描來查詢性能最低。
possible_key 顯示可能應用在這張表中的索引,一個或者多個。
查詢設計的字段上若存在索引,則該索引將會被列出,可是不必定被使用。
其實這個就是咱們寫在where 中用到的索引。
key 爲實際使用的索引。
有三種狀況:
第一種:possible_key 爲null ,而key 不爲空,通常就是索引掃描,別名覆蓋索引。
第二種:possible_key 有一個或者多個,而後key顯示一個。
第三個:possible_key 爲null,而後key爲null。
key_len:表示索引中使用的字節數,可經過該列計算查詢中使用的索引的長度。在不損失精確性的狀況下,越短越好。
key_len 顯示的值爲索引字段的最大可能長度,並不是實際長度,即:key_len 是根據表定義計算而得,不是經過表內檢索出的。
顯示索引的那一列被使用了,若是可能的話,是一個常數。那些列或者常量被用於查找索引列上的值。
根據統計信息及索引選用狀況,大體估算出找到所需的記錄鎖須要讀取的行數。
每張表有優化器查詢的行數,這個比較好理解。
顯示是額外的信息。
這一篇比較詳細:
http://www.javashuo.com/article/p-ugsjcqsm-mc.html
字段比較多,就不詳細介紹了。