茲有 Index (A,B,C) ——組合索引多字段是有序的,並且是個完整的BTree 索引。
- 下面條件可以用上該組合索引查詢:
- A>5
- A=5 AND B>6
- A=5 AND B=6 AND C=7
- A=5 AND B IN (2,3) AND C>5
- 下面條件將不能用上組合索引查詢:
- B>5 ——查詢條件不包含組合索引首列字段
- B=6 AND C=7 ——查詢條件不包含組合索引首列字段
- 下面條件將能用上部分組合索引查詢:
- A>5 AND B=2 ——當范圍查詢使用第一列,查詢條件僅僅能使用第一列
- A=5 AND B>6 AND C=2 ——范圍查詢使用第二列,查詢條件僅僅能使用前二列
- A=5 AND B IN (2,3) AND C>5 , 會使用到索引的全部字段. 原理是什么?是自動優化拆分成 A=5 and b=2 and c>5 or a=5 b=3 and c>5兩個SQL嗎? 當IN的數量達到多少的時候,索引只能用A,B列,而用不到C列?