Mysql索引查詢失效的情況


一:不在索引上使用函數,計算等

  見圖一,在kq_time上增加了一個索引

 

 我們使用date()函數進行查詢,見圖二

 

 圖二根據kq_time字段查詢並沒有使用索引,我們可以根據kq_time換一種寫法,他就可以走索引了,見圖三

 

 查詢條件是一樣的,圖三的寫法就走索引了.

 

二:盡量少使用!=,<>,這樣可能是導致全表掃描

我在person_name上建立了一個索引,見圖四

 

 圖五根據person_name='張三'使用了索引

 

 

 

 圖六根據person_name!='張三'就沒有使用了索引

 

 圖六!=導致了全表掃描,<>,也會導致全表掃描,我這里就不演示了

三:is null和is not null也無法使用索引

 

 person_name已經建立了索引,然而並沒有走索引

四:like關鍵字 ,以為%開頭,也會導致索引失效,導致全表掃描,見圖八

 

 五:少用in跟or,可能會導致索引失敗.見圖九

 

 

六:范圍查詢包括表中大部分數據,也會導致索引失效,見圖十

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM