我已经阅读了很多不使用 and 不存在的否定运算符,以及如何将逻辑逆转到正面操作员,例如,在中使用而不是在中使用可能会导致很好的性能。
无论如何,当操作员和检查某些条件时,我有很多情况。我想知道(我仍然能够找到任何文章,问题或示例)是使用不是null 和的性能差异吗?/p>
两者都可以作为索引寻求进行。
他们中的一个寻求索引开始读取所有行带有 NULL
的行,然后在遇到第一个NOT NULL
时停止,另一个在寻找第一个NOT NULL
值,然后读取整个索引的其余部分。
除非索引覆盖,但是在任何一种情况下都不得使用搜索,因为它取决于选择性。如果您有许多NULL
值,因此NOT NULL
是高度选择性的,您可能需要考虑根据此处的示例在该列上创建一个过滤的索引。