數(shù)據(jù)準(zhǔn)備:
1、復(fù)合索引丟失第一列字段:
2、復(fù)合索引,跳過中間字段:
先來看查詢條件只有第一列時(shí)的結(jié)果:
接下來執(zhí)行跳過中間字段的情況:
此時(shí)索引確實(shí)生效,但key_len依舊是153,理論上查詢精度越大key_len會(huì)越大,但此時(shí)并沒有增大就表示條件【a='123'】上的索引并沒有用到。
復(fù)合索引應(yīng)當(dāng)遵守【最左前列原則】,即:查詢應(yīng)該從索引的最左前列開始并且不能跳過中間列,一旦跳過某個(gè)列,該列之后的列上的索引都會(huì)失效
3、在索引上進(jìn)行計(jì)算、函數(shù)、類型轉(zhuǎn)換等操作導(dǎo)致索引失效:
使用函數(shù):
進(jìn)行自動(dòng)類型轉(zhuǎn)換,title定義的是varchar類型,但查詢時(shí)給他賦值int導(dǎo)致mysql會(huì)自動(dòng)給他進(jìn)行類型轉(zhuǎn)換導(dǎo)致索引失效
使用? + - * / 等計(jì)算
4、使用了范圍導(dǎo)致該索引之后的索引失效
先來看一下沒使用范圍的sql執(zhí)行情況:
隨著查詢精度的增大,key_len增大,表示兩個(gè)條件的索引均有效,現(xiàn)在在范圍之后再添加一個(gè)查詢條件:
key_len依舊保持158,說明票【a=1】這個(gè)條件上的索引是失效的。
5、使用不等于操作(!= 或 <>)
6、使用 is not null?
7、使用前導(dǎo)模糊查詢
先來看后導(dǎo)查詢:
此時(shí)索引并沒有失效,再來看前后導(dǎo)模糊查詢:
此時(shí)索引已經(jīng)失效,那么單獨(dú)使用前導(dǎo)查詢:
此時(shí)索引失效,因此,使用前導(dǎo)查詢會(huì)導(dǎo)致索引失效。
8、mysql不走索引會(huì)有更好的查詢性能時(shí)索引失效
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁標(biāo)題:MySql學(xué)習(xí)筆記(九):索引失效-創(chuàng)新互聯(lián)
分享鏈接:http://chinadenli.net/article30/ddgoso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、虛擬主機(jī)、面包屑導(dǎo)航、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容