索引失效的前提是建立索引,並且在一定情況下索引失效不起作用了,下面列出的就是避免索引失效的十種情況
這裏說一下全值匹配和最佳左前綴法則:
全值匹配的意思是查找的字段順序和個數與索引的列的個數和順序一致
我們發現只要索引中第一列沒有或者缺少某個複合索引中的索引列都會導致索引失效,這是因爲違反了最佳左前綴法則導致的,所以我們在寫SQL時最好講where後的查詢列的個數順序與複合索引的個數順序一致
鏈接:最佳左前綴法則
有的小夥伴在測試的時候會出現明明違反了最佳左前綴法則仍然能夠用上索引,建議看一看這篇文章:
MySQL中最左原則和覆蓋索引的討論
總結