是指在復合索引中,查詢條件需要按照索引列的順序從最左側列開始依次匹配。只有查詢條件中的列按照索引的最左邊列開始進行匹配,索引才能被有效使用,但有時雖然不是正常順序,由于MySQL中存在優化器,會自動調整順序,依舊能使用索引
聯合索引的順序
例如:聯合索引(a,b,c)在B+Tree中的排序是:先按a的值排序,如果a的值相同的,則按b的值排序,如果b的值相同,在按c的值排序。
注意:如果遇到范圍查詢(>,<),就會停止匹配
如果遇到>=、between、like等范圍查詢,則不會停止匹配,原因:這些查詢包含一個凳子判斷,這樣可以直接定位到某個數據,然后往后掃描即可。
如何設計聯合索引?
也就是如何滿足最左匹配原則的實現
高頻查詢字段放左側,等值查詢字段優先于范圍查詢字段。