索引失效的案例:
1、全值匹配我最愛
- 建立幾個復合索引字段,最好就用上幾個字段。且按照順序使用
2、最佳左前綴法則
- 如果索引了多列,要遵守最左前綴法則,指的是查詢從索引的最左前列開始,不跳過索引中間的列。(帶頭大哥不能死,中間兄弟不能丟)
3、不再索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表掃描
4、存儲引擎不能使用索引中范圍條件右邊的列。(范圍之后全失效)
- 若中間索引列用到了范圍(>、<、like等),則后面的索引全失效
5、盡量使用覆蓋索引(只訪問索引的查詢(索引列和查詢列一致)),減少select *
6、Mysql在使用不等於(!=、<>)或like的左模糊的時候無法試用索引會導致全表掃描
7、IS NULL和IS NOT NULL也無法使用索引
8、字符串不加單引號索引失效,因為這里有一個隱式的類型轉換操作,更嚴重會導致行鎖變表鎖,降低SQL效率
9、少用or,用它來連接時索引會失效
口訣

