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