我将以下问题连接到MongoDB数据库设计。这是我的情况:
我有两种进行SELECT查询的可能性:
所以问题是当我在一个查询上执行许多小查询时是否还有额外的开销?在关系数据库中进行许多查询是一种非常糟糕的做法 - 但在NoSQL中?我在问一般的做法 - 我应该避免那么多疑问吗?
在文档中,我读到查询的数量并不重要,但搜索文档的数量 - 是真的吗?
感谢您的帮助;)
答案 0 :(得分:1)
在一个查询上执行小型查询时出现的问题是网络开销,即网络延迟往返。
对于批处理中的单个请求,它可能不多,但如果您发出这样的多个请求或在前端使用此技术,则会降低性能。
此外,您可能需要对数据进行预处理,例如手动汇总数据。
答案 1 :(得分:1)
有一个类似问题的问题:Is it ok to query mongodb multiple times
IMO,对于您的用例,即25<N<100
,一定应该进行批处理。
如果是单一查询:
正如上面的答案中所解释的那样,对于批量处理的数量与往返次数的比较,出现了一个甜蜜点,这也取决于您的文档类型。
从广义上讲,任何10<N<1000
都应该与批处理一起使用,其余的记录应该构成其他批次的一部分,但一次查询单个文档肯定会产生不必要的开销。