索引失效的情況

導(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容