(1)索引優(yōu)化1
?
查看一下有沒(méi)有建立索引:
用到索引中的一個(gè):type中的ref決定訪問(wèn)性能
?用到索引中的兩個(gè):通過(guò)key_len的長(zhǎng)度可以看出來(lái),比第一個(gè)大一點(diǎn)。或者通過(guò)ref:中用到了兩個(gè)常量const
用到了三個(gè)索引:key_len比第二個(gè)又大了一點(diǎn),用到了三個(gè)常量const
一下的結(jié)果都能查出,但是中間的過(guò)程對(duì)mysql影響還是比較大的,數(shù)據(jù)量大的時(shí)候全表掃描十分影響性能。但是建立的索引用不上
有問(wèn)題的sql分析:查詢的時(shí)候沒(méi)有按照建立的索引的順序設(shè)置查詢條件:導(dǎo)致索引失效
查詢的時(shí)候用符合索引的第三個(gè)做查詢條件:導(dǎo)致索引失效
可以得出比如你建立的符合索引,name age pos ,查詢的時(shí)候沒(méi)有了name,只有單獨(dú)的age或者pos,或者age和pos的話,我們就不能用到索引,它違背了左前綴法則
帶頭大哥不能死
跳過(guò)age:只用到name索引,它違背了最佳左前綴法則第二條?
?(2)索引優(yōu)化2
沒(méi)有使用函數(shù)時(shí)用到了索引,type為ref,使用函數(shù)后索引失效?type為All,他們的結(jié)果都是對(duì)的能查詢出來(lái),但是使用了left函數(shù)(取name的4位),會(huì)使索引失效
(3)索引優(yōu)化3
?age字段>25,使用了范圍(導(dǎo)致索引失效),type變?yōu)閞ange范圍級(jí)別
(4)索引優(yōu)化4
?表字段:
當(dāng)查詢的時(shí)候不使用select * ,而使用具體的字段,Extra就多了一個(gè)?Using index
比使用*好一點(diǎn)點(diǎn)
使用了范圍age>25,但是查詢的字段使用了索引的字段,相比下面的沒(méi)有使用具體字段的*它的key_len變短了,它是從索引上拿,導(dǎo)致type沒(méi)有用到range,變成了ref,Extra多了一個(gè)Using index
提高了性能
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-689238.html
?查詢的索引的一個(gè)字段,也用到了索引(覆蓋索引),Extra也使用到了Using index文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689238.html
到了這里,關(guān)于sql:SQL優(yōu)化知識(shí)點(diǎn)記錄(六)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!