子查询VS连接

时间:2016-01-29 22:08:46

标签: sql sql-server sql-server-2012

从这两种方法中编写查询的最佳方法是什么? 1.使用子查询 2.使用连接

编写查询时哪种方式更快更好?

谢谢。

Shashika

2 个答案:

答案 0 :(得分:2)

在大多数情况下,JOIN比子查询更快,并且子查询的速度非常快。

在JOIN中,RDBMS可以创建一个更适合您的查询的执行计划,并且可以预测应该加载哪些数据以进行处理并节省时间,这与子查询不同,后者将运行所有查询并将所有数据加载到做处理。

子查询的好处是它们比JOIN更具可读性:这就是大多数新SQL用户更喜欢它们的原因;这是简单的方法;但是在性能方面,JOINS在大多数情况下都更好,即使它们也不难阅读。

- Kronas,Stackoverflow

答案 1 :(得分:1)

从一个做过大量调优和修复遗留代码的人的角度出发,我更喜欢连接(如果可能的话,还有ON子句的条件)。它确实可以提高可读性,特别是对于定期扩展的程序。