SQL中SELECT NULL和SELECT 1的性能比较
更好
IF EXISTS(Select null from table)
?
IF EXISTS(Select 1 from table)
哪个性能
Which one is better for performance
IF EXISTS(Select null from table)
or
IF EXISTS(Select 1 from table)
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
两者执行相同,因为 EXISTS 中的 SELECT 子句永远不会被评估。您可以使用以下方法进行测试:
这应该会触发除以零的错误,但不会。
我个人更喜欢使用 NULL,因为很明显表中没有引用任何内容,因此对其他人更可见。如果不熟悉 EXISTS 子句,选择一个值(例如第二个示例中的 INT 数字 1)可能会导致对正在发生的情况做出假设。
Both perform the same, because the SELECT clause in the EXISTS is never evaluated. You can test using:
That should trigger a divide by zero error, but won't.
I personally prefer using NULL because it's obvious that nothing is referenced in the table, so it's more visible to others. Selecting a value, like the INT number 1 in the second example, can lead to assumptions about what is happening if not familiar with the EXISTS clause.