我这里有两张桌子:
ITEMS
ID| DETAILS| .....| OWNER
USERS:
ID| NAME|....
ITEMS.OWNER = USERS.ID
我列出了各自所有者名称的项目。为此,我可以在两个表上使用连接,或者我可以选择所有ITEMS并循环遍历它们进行sql查询以检索该itmes所有者的元组。那就像:
带有JOIN的1个sql 与 1x20单表sql查询
在速度方面哪个更好? 感谢
答案 0 :(得分:6)
当然JOIN
会更快。
进行20
次查询意味着:
20
次20
索引寻求在items
20
个记录集(每个记录集都有自己的元数据)。答案 1 :(得分:3)
每个查询都有开销。如果你可以用一个查询做某事,那么(几乎)总是更好地用一个查询来做。大多数数据库引擎都比你聪明。即使以某种方式拆分查询更好,数据库也会找到自己。
开销的一个例子:如果你执行100次查询,你的应用程序和你的网络服务器之间会有更多的流量。
一般情况下,如果您真的想了解一些有关性能的信息,请对各种方法进行基准测试,测量您感兴趣的参数,并根据becnhmark的结果做出决定。
祝你好运!答案 2 :(得分:2)
执行连接将更快,更好的做法
答案 3 :(得分:0)
我加入比在父表中为每个记录对子表执行另一个查询要快得多。
您还可以在SQL中启用性能数据,以便自己查看结果。
http://wraithnath.blogspot.com/2011/01/getting-performance-data-from-sql.html
<磷>氮