处理在mongodb中完全相同的多个查询

时间:2018-10-27 06:49:55

标签: database mongodb mongoose

假设我最近有1000个db.collection.find()查询,而这些查询都是相同的。

但是这些查询是由不同的1000个用户进行的,因此MongoDB具有不同的1000个查询。

所以我的问题是MongoDB将处理每个查询个体,或者MongoDB将利用预处理的查询结果。

2 个答案:

答案 0 :(得分:2)

  

所以我的问题是MongoDB是否要处理每个查询?

是的。每个查询都被执行。您可以在mongostat

中进行验证
  

MongoDB将利用预处理的查询结果

MongoDB会将经常使用的数据和索引添加到内存中的working set

它还将为您的查询缓存最有效的计划,如其query planner doc.

中所述

答案 1 :(得分:1)

服务器端(documentation)上有文档缓存,因此您的I / O系统不太可能每次都被一遍又一遍地击中。此外,查询计划也会被缓存(documentation)。也就是说,结果将不会被缓存,这在文档(第一个链接)中也有说明:

  

MongoDB不会缓存查询结果以返回相同查询的缓存结果。