2

No`orm 的创建者表明,可以将 3 个表的连接分解为 3 个更快的查询:http ://www.notorm.com/#performance 。

您认为通过将 ID 放在 IN 语句中可以避免连接和使用多个查询吗?

由于上述原因,那个库(NoORM)不支持连接,你认为我可以放弃使用连接而只使用那个库吗?对我来说很奇怪避免加入是如此容易。

4

2 回答 2

2

对于相对小规模的应用,这可能是可行的。但是在您可能传递许多参数的情况下(相当于您在许多行上匹配的连接条件),这将使您失败。我能想到的最好的例子是 Informix 的一个限制,例如,(我不知道最新版本是否如此)准备好的语句不允许超过 20 个(不准确)左右的参数要通过。

于 2013-01-18T21:57:14.877 回答
1

在单个查询上使用连接的一个原因是它允许数据库的优化器根据现有数据为所涉及的表提出最佳计划。如果您将一个联合查询分解为单独的查询,您实际上是在对执行计划进行硬编码。除其他外,这假设您在编写代码时将花一些时间考虑查询的选择性,并且选择性将在应用程序的生命周期内保持不变。在我看来,这些都是相当大的假设。

此外,如果您将数据库用作不只是一个愚蠢的容器,您可能会发现有些查询不会那么容易分解为单个查询(例如,几乎在您使用聚合函数的任何时候)。

于 2013-01-18T22:21:40.560 回答