MySQL索引法則和失效

1、遵循最左法則(聯合索引),從索引的最左列開始,并且不跳過索引中的列。如果跳躍某一列,索引將部分失效(后面的字段索引失效)。

2、在聯合索引當中出現范圍查詢(>,<),范圍查詢中右側索引失效。規避方法:使用>=,<= 可以避免索引失效。

3、不要在索引列上進行運算操作(函數運算等等),否則索引將會失效。

4、字符串類型字段,如果查詢不加引號,索引失效

5、模糊查詢,%關鍵字%,如果尾部%不會失效,前面%索引失效。

6、or鏈接的使用,用or分割開的條件,如果or前的條件中的列有索引,而后面的列沒有索引,那么涉及的索引都不會用到。 以下id有主鍵索引,phone為普通索引,age是聯合索引。


image.png

6、如果表中的數據量比較小,MySQL 優化器可能會選擇全表掃描而不是使用索引來執行查詢。

7、前綴索引,具體如下圖:


image.png

8、單列索引和聯合索引的使用:


image.png
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容