MySQL索引的最左字首原理與查詢的相關優化

一個X號的QB發表於2016-08-19

最基礎:索引的使用,儘量能夠做到一一對應每條資料表中的資料。
1)全列匹配,當按照索引中所有列進行精確匹配時,索引可以被用到,理論上,索引
對順序是敏感的,但是由於MySQL的查詢優化器會自動調整where子句中
的條件順序以使用合適的索引。
2)最左字首匹配,當查詢條件精確匹配索引的左邊連續一個或幾個列時,
索引可以被用到,但是隻能用到一部分,即條件所組成的最左字首。
3)查詢條件用到索引中列的精確匹配,但是中間某個條件未提供。此時情況
和2)一樣,會使用索引,只不過是使用一部分索引。
4)查詢沒有指定索引第一列,由於不是最左字首,索引這樣的查詢不會用到索引。
5)匹配某列的字首索引,此時可以用到索引,但是如果萬用字元不是隻出現在末尾,
則無法使用索引。
6)範圍查詢,可以用到最左字首匹配的索引,但是範圍列後面的列無法用到索引。
7)查詢中有函式或者表示式,MySQL不會使用索引

相關文章