当从表 A 检索表 B 中不存在的记录时,SQL Server 提供两个选项: LEFT OUTER JOIN并且不存在。虽然人们普遍认为,由于 SQL Server 的 ANSI 倾向,LEFT OUTER JOIN 效率更高,但了解每个运算符的具体性能特征非常重要。
LEFT OUTER JOIN 获取所有操作符表A中的记录,无论它们在表B中是否有对应的条目。然后根据连接过滤掉不匹配的记录 标准。在处理大型表或多个连接条件时,这个详尽的过程可能会消耗大量资源。
NOT EXISTS 另一方面,以“短路”机制运行。一旦找到匹配的记录,它立即忽略当前正在检查的记录。这种方法在以下情况下效率更高:
一般来说,NOT EXISTS 或 EXISTS 是首选如果子查询预计返回大量匹配记录,则其效率较高。但是,需要注意的是:
以上是LEFT OUTER JOIN 与 NOT EXISTS:哪个 SQL 子句提供更好的性能?的详细内容。更多信息请关注PHP中文网其他相关文章!