小编Min*_*NCH的帖子

IN() 条件是否始终是相等搜索?

我试图了解在索引方面 IN() 条件是相等还是不等搜索。

我一直在互联网上寻找答案,发现的答案多种多样,是的,这是一个平等搜索,不,这不是一个平等搜索,有时它是一个平等搜索。

即,有些人建议如果条件中有一个值,则它是相等搜索,如果您有超过一个值,则它会变成不等式搜索,但我也发现与建议它始终相等的答案相矛盾。

注意:我使用 SQL Server 作为 DBMS,因为我不确定它们之间是否有所不同。

编辑:如果是这样,我可能会感到困惑,抱歉,但是当您创建索引时,您不需要了解使用该索引完成的搜索在搜索时是否将使用相等或不等参数。因此,您将设计索引,使其始终首先查找相等匹配。我更关心的是,当涉及到对索引进行查找时,SQL“引擎”是否会将其视为相等搜索。正如我所读到的,有时不会。

SQL Server“引擎”会将 IN() 操作视为等式,除非它认为可以通过将其视为不等式来加速查询,然后查看执行计划,它可能会忽略已设置的索引并将寻找不等式。

首先,这是正确的吗?其次,我试图了解在什么情况下会发生这种情况。

index sql-server index-tuning

5
推荐指数
2
解决办法
1088
查看次数

标签 统计

index ×1

index-tuning ×1

sql-server ×1