我对带有范围的MYSQL多个复合索引有一些疑问。 例如,如果我有以下索引:
Multiple column index in columns (A, B, C)
以及以下查询
WHERE A=2 AND B>5 AND C=3
问题: -索引将使用(A,B,C)列或仅使用(A,B)列
那这个呢?
WHERE A=2 AND B IN (1,2,3) AND C=4
谢谢!
答案 0 :(得分:0)
问题:-索引将使用(A,B,C)列或仅使用(A,B)列
最有可能(A,B)。索引是位置索引,因此如果上一列未使用相等,则它们将无法访问下一列。但是根据表的统计信息,全表扫描可能会更快。
A = 2 AND B IN(1,2,3)AND C = 4
也许:
统计数据肯定会产生重大变化。本质上,A
是否非常有选择性?如果没有,则全表扫描可能比使用索引快。