1

在对数据库发出查询时,在对象图的什么深度,仅使用多次行程而不是一次巨大的查询实际上会变得更高效?

4

2 回答 2

1

以目前的形式,这个问题是无法回答的。

这取决于复杂性的性质、所讨论的数据库平台(和版本)、网络连接等等。

根据我的经验,解决这个问题的最佳方法是

  • 首先相信你的直觉
  • 测量结果
  • 如果性能不可接受,则更改策略
  • 从经验中学习
于 2012-07-27T20:41:17.270 回答
1

关系数据库(假设您正在询问它们)不理解/查看中间件中的对象/实体。因此,他们不会知道您的查询来自什么深度。它们都以无状态的声明方式运行。

话虽如此,一般来说,几个简单的查询代替大型查询不会严重损害所提供的性能(1)通过池重用连接(2)连接打开-关闭生命周期很短。

如果底层数据库经过良好调整和索引,那么获取大量数据的大型查询也是可取的。它减少了流量,使用更少的连接并有助于并发。

于 2012-07-27T20:45:44.817 回答