導(dǎo)致索引失效的案例
1.建什么索引用什么索引,順序也最好保持一致
2.最佳左前綴索引名稱(chēng)命名(如字段name,age,city,則索引命名應(yīng)該是nameAgeCity或者xxx_nameAgeCity,順序很重要)
3.不在索引列上做任何操作(計(jì)算,函數(shù),or,類(lèi)型轉(zhuǎn)換),會(huì)導(dǎo)致索引失效而轉(zhuǎn)向全表掃描
4.存儲(chǔ)引擎不能使用索引中范圍條件右邊的列(如name='lin' and age>25 and city='qingdao',則age后面的索引會(huì)實(shí)效)
5.盡量使用覆蓋索引(只訪(fǎng)問(wèn)索引的查詢(xún)(索引列和要查詢(xún)的列一致)),減少select *
6.MySQL在使用不等于(!=或者<>)的時(shí)候無(wú)法使用索引會(huì)導(dǎo)致全表掃描
7.is null,is not null 也無(wú)法使用索引
8.like以通配符在這('%abc','%abc%')兩種情況會(huì)索引實(shí)效變成全表掃描,'abc%'則不會(huì),若要'%abc','%abc%'不失效,建議使用覆蓋索引,且查詢(xún)的字段要少于索引或者與索引一致,不使用select *。如為name,age,city建了索引,請(qǐng)這么使用:select name或者select age,或者select city或者select name,age,city。如果select name,age,city,email則會(huì)全表掃描
9.字符串不加引號(hào)索引失效,
10.少用or,用他來(lái)連接時(shí)索引會(huì)失效
11.select * from A where exists (select 1 from where b.id=A.id)#當(dāng)A表的數(shù)據(jù)系小于B表時(shí),用exists優(yōu)于in
12.使用join代替子查詢(xún)
索引失效的情況
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 雖然你這列上建了索引,查詢(xún)條件也是索引列,但最終執(zhí)行計(jì)劃沒(méi)有走它的索引。下面是引起這種問(wèn)題的幾個(gè)關(guān)鍵點(diǎn)。 列與列對(duì)...
- 索引并不是時(shí)時(shí)都會(huì)生效的,比如以下幾種情況,將導(dǎo)致索引失效: 1.如果條件中有or,即使其中有條件帶索引也不會(huì)使...
- 數(shù)據(jù)庫(kù)使用的oracle數(shù)據(jù)庫(kù),可視化管理工具使用的PLSQL 查看表中的索引選中表,右鍵, view -->in...
- 查詢(xún)的列中的值存在nullnull無(wú)法參與到索引建立的樹(shù)中 列中的值較少(重復(fù)數(shù)據(jù)較多) 前導(dǎo)模糊搜索由于前面是模...
- 【日精進(jìn)打卡第95天】 【知~學(xué)習(xí)】 《六項(xiàng)精進(jìn)》2遍 共129遍 《大學(xué)》2遍 共129遍 ?????? 【經(jīng)典...