在对数据库发出查询时,在对象图的什么深度,仅使用多次行程而不是一次巨大的查询实际上会变得更高效?
问问题
40 次
2 回答
1
以目前的形式,这个问题是无法回答的。
这取决于复杂性的性质、所讨论的数据库平台(和版本)、网络连接等等。
根据我的经验,解决这个问题的最佳方法是
- 首先相信你的直觉
- 测量结果
- 如果性能不可接受,则更改策略
- 从经验中学习
于 2012-07-27T20:41:17.270 回答
1
关系数据库(假设您正在询问它们)不理解/查看中间件中的对象/实体。因此,他们不会知道您的查询来自什么深度。它们都以无状态的声明方式运行。
话虽如此,一般来说,几个简单的查询代替大型查询不会严重损害所提供的性能(1)通过池重用连接(2)连接打开-关闭生命周期很短。
如果底层数据库经过良好调整和索引,那么获取大量数据的大型查询也是可取的。它减少了流量,使用更少的连接并有助于并发。
于 2012-07-27T20:45:44.817 回答