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