type
type是查詢的訪問類型。是較為重要的一個(gè)指標(biāo),結(jié)果值從最好到最壞依次是:
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般來說,得保證查詢至少達(dá)到range級(jí)別,最好能達(dá)到ref。
6.1 system
表只有一行記錄(等于系統(tǒng)表),這是const類型的特列,平時(shí)不會(huì)出現(xiàn),這個(gè)也可以忽略不計(jì)
6.2 const
表示通過索引一次就找到了,const用于比較primary key或者unique索引。因?yàn)橹黄ヅ湟恍袛?shù)據(jù),所以很快
如將主鍵置于where列表中,MySQL就能將該查詢轉(zhuǎn)換為一個(gè)常量。
6.3 eq_ref
唯一性索引掃描,對(duì)于每個(gè)索引鍵,表中只有一條記錄與之匹配。常見于主鍵或唯一索引掃描。
6.4 ref
非唯一性索引掃描,返回匹配某個(gè)單獨(dú)值的所有行.本質(zhì)上也是一種索引訪問,它返回所有匹配某個(gè)單獨(dú)值的行,然而,它可能會(huì)找到多個(gè)符合條件的行,所以他應(yīng)該屬于查找和掃描的混合體。
沒用索引前:
建立索引后:
6.5 range
只檢索給定范圍的行,使用一個(gè)索引來選擇行。key 列顯示使用了哪個(gè)索引一般就是在你的where語句中出現(xiàn)了between、<、>、in等的查詢這種范圍掃描索引掃描比全表掃描要好,因?yàn)樗恍枰_始于索引的某一點(diǎn),而結(jié)束語另一點(diǎn),不用掃描全部索引。
6.6 index
出現(xiàn)index是sql使用了索引但是沒用通過索引進(jìn)行過濾,一般是使用了覆蓋索引或者是利用索引進(jìn)行了排序分組。
6.7 all
Full Table Scan,將遍歷全表以找到匹配的行。
6.8 index_merge
在查詢過程中需要多個(gè)索引組合使用,通常出現(xiàn)在有 or 的關(guān)鍵字的sql中。
6.9 ref_or_null
對(duì)于某個(gè)字段既需要關(guān)聯(lián)條件,也需要null值得情況下。查詢優(yōu)化器會(huì)選擇用ref_or_null連接查詢。
6.10 index_subquery
利用索引來關(guān)聯(lián)子查詢,不再全表掃描。
6.11 unique_subquery
該聯(lián)接類型類似于index_subquery。 子查詢中的唯一索引。
備注:一般來說,得保證查詢至少達(dá)到range級(jí)別,最好能達(dá)到ref。
相關(guān): 如果想學(xué)大數(shù)據(jù),是自學(xué)還是大數(shù)據(jù)培訓(xùn)好——Java培訓(xùn)MySQL之key_len
本文鏈接:
本文章“Java培訓(xùn)之type”已幫助 102 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579