3

我这里有两张桌子:

ITEMS
ID| DETAILS| .....| OWNER

USERS:
ID| NAME|....

在哪里ITEMS.OWNER = USERS.ID

我列出了这些物品及其各自所有者的姓名。为此,我可以在两个表上使用连接,或者我可以选择所有项目并循环通过它们进行 sql 查询以检索该项目所有者的元组。这就像:

1 个带有 JOIN 的 sql 与 1x20 个单表 sql 查询

就速度而言,哪种方法更好?谢谢

4

4 回答 4

6

当然aJOIN会更快。

进行20查询将意味着:

  • 解析它们的20时间
  • 制作20索引寻求找到索引范围的开始items
  • 返回20记录集(每个都有自己的元数据)。
于 2011-01-21T12:21:55.157 回答
3

每个查询都有开销。如果您可以用一个查询来做某事,那么(几乎)总是最好用一个查询来做。而且大多数数据库引擎都比你聪明。即使以某种方式拆分查询更好,数据库也会自己发现。

开销示例:如果您执行 100 次查询,您的应用程序和 Web 服务器之间的流量将会更多。

一般来说,如果您真的想了解有关性能的一些信息,请对各种方法进行基准测试,测量您感兴趣的参数并根据基准测试的结果做出决定。

祝你好运!

于 2011-01-21T12:28:13.910 回答
2

执行连接会更快,也是更好的做法

于 2011-01-21T12:23:14.623 回答
0

我加入会比对父表中的每条记录在子表上执行另一个查询要快得多。

您还可以在 SQL 中启用性能数据以自己查看结果。

http://wraithnath.blogspot.com/2011/01/getting-performance-data-from-sql.html

ñ

于 2011-01-21T12:21:49.733 回答