使用非聚集索引进行高效搜索
Using non clustered index for efficient searching
我在三列的组合上创建了非聚集索引。是否需要在where条件下指定所有三列才能使用非聚簇索引
简短的回答是否定的。
如果至少索引中的第一列出现在您的 where
子句中,则可以使用索引 。
它是否 将 被使用已经取决于优化器,但假设你在 where
子句中的其他列上没有任何其他索引,它可能是用过。
为了利用您的索引,您必须像这样使用。
索引:Ix_threecols(c1,c2,c3)
1. select c1,c2,c3 from table where c1=val
and c2=val and c3=val
2. select c1,c2,c3 from table where c1=val
and c2=val
3. select c1,c2,c3 from table where c1=val
索引中最左边的第一列应该用在 where 子句中。
请不要在 select 中使用 (*),因为它可能会导致索引扫描。
我们必须检查执行计划以对此进行更多分析。
我在三列的组合上创建了非聚集索引。是否需要在where条件下指定所有三列才能使用非聚簇索引
简短的回答是否定的。
如果至少索引中的第一列出现在您的 where
子句中,则可以使用索引 。
它是否 将 被使用已经取决于优化器,但假设你在 where
子句中的其他列上没有任何其他索引,它可能是用过。
为了利用您的索引,您必须像这样使用。
索引:Ix_threecols(c1,c2,c3)
1. select c1,c2,c3 from table where c1=val
and c2=val and c3=val
2. select c1,c2,c3 from table where c1=val
and c2=val
3. select c1,c2,c3 from table where c1=val
索引中最左边的第一列应该用在 where 子句中。 请不要在 select 中使用 (*),因为它可能会导致索引扫描。
我们必须检查执行计划以对此进行更多分析。