MySQL索引失效原因


索引失效的案例:

1、全值匹配我最愛

  • 建立幾個復合索引字段,最好就用上幾個字段。且按照順序使用

2、最佳左前綴法則

  • 如果索引了多列,要遵守最左前綴法則,指的是查詢從索引的最左前列開始,不跳過索引中間的列。(帶頭大哥不能死,中間兄弟不能丟)

3、不再索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表掃描

4、存儲引擎不能使用索引中范圍條件右邊的列。(范圍之后全失效)

  • 若中間索引列用到了范圍(>、<、like等),則后面的索引全失效

5、盡量使用覆蓋索引(只訪問索引的查詢(索引列和查詢列一致)),減少select *

6、Mysql在使用不等於(!=、<>)或like的左模糊的時候無法試用索引會導致全表掃描

7、IS NULL和IS NOT NULL也無法使用索引

8、字符串不加單引號索引失效,因為這里有一個隱式的類型轉換操作,更嚴重會導致行鎖變表鎖,降低SQL效率

9、少用or,用它來連接時索引會失效

口訣


免責聲明!

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



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