我已经阅读了很多不使用负面运算符,例如 NOT IN 和 NOT EXISTS 以及如何将逻辑转换为正运算符,例如使用 IN < / em>而 NOT IN 可以带来非常好的表现。
无论如何,我有很多CASE WHEN运算符和检查某些条件的视图。我想知道(我仍然能够找到任何文章,问题或具体的例子)在使用 IS NOT NULL 和 IS NULL 时会有性能差异吗? / p>
答案 0 :(得分:3)
两者都可以作为索引寻求进行。
其中一个人在搜索索引的开头时读取NULL
的所有行,然后在遇到第一个NOT NULL
时停止,另一个搜索到第一个NOT NULL
值然后停止阅读整个指数的其余部分。
除非索引覆盖,否则在任何一种情况下都不能使用搜索,因为它归结为选择性。如果您有多个NULL
值,因此NOT NULL
具有高度选择性,您可能需要考虑在该列as per the example here上创建过滤索引。