Mongodb-投影会增加执行时间吗?

时间:2019-04-12 08:41:34

标签: mongodb aggregation-framework

假设我的文档中有50个字段。

使用投影功能时,只需选择4个字段,执行时间会增加还是减少?

mongodb如何处理它?<​​/ p>

  1. mongodb是否会获取文档,然后过滤字段并返回?
  2. mongodb是否获取所选字段而不是整个文档并返回?
  3. findaggregate的工作方式是否不同?

我相信第一个选项会增加执行时间,而第二个选项会减少执行时间。

1 个答案:

答案 0 :(得分:0)

这一切取决于我猜……取决于您的搜索条件。在我看来,它只能是第1点(或应该对其进行大量优化),因为任何过滤或聚合或任何不在投影中的字段都可以进行。和顺便说一句...定义“获取”。获取客户端,我会说不,是在服务器上“获取”的。通常,我想说的是,如果您的查询不是那么复杂,那么即使投影需要花费一些额外的时间,它也会与将数据传输到客户端的总时间相抵。总而言之,我们在这里以毫秒为单位,与优化数据库查询相比,总的传输时间和延迟很难抑制。

此外,我发现了以下内容(比我的看法更具技术性):https://dba.stackexchange.com/questions/198444/how-mongodb-projection-affects-performance