哪些情況下Mysql索引會失效

1、全值匹配我最愛;

2、最佳左前綴法則 ;

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

4、存儲引擎不能使用索引中範圍條件右邊的列;

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

6、mysql 在使用不等於(!= 或者<>)的時候有時候無法使用索引會導致全表掃描;

7、注意null/not null對索引的可能影響;

8、like以通配符開頭('%abc...')mysql索引失效會變成全表掃描的操作;

9、字符串不加單引號索引失效;

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

小總結:

 全職匹配我最愛,最左前綴要遵守;
 帶頭大哥不能死,中間兄弟不能斷;
 索引列上少計算,範圍之後全失效;
 LIKE百分寫最右,覆蓋索引不寫*;
 不等空值還有OR,索引影響要注意;
 VAR引號不可丟, SQL優化有訣竅。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章