Mongodb聚合框架性能

时间:2019-03-27 05:00:14

标签: mongodb

我对所有获取请求都使用mongodb聚合框架,当我说获取获取单个文档以及多个文档的请求时。对于很少的请求,我在聚合管道中大约有90到100个阶段({ {1}},$match$skip$limit$lookup$unwind$addFields)是我依序维护的阶段。如果我通过的限制超过50个,则类似$group的给定错误,否则执行查询大约需要60秒。我的数据库中每个集合都有超过60,000个文档。如何解决此问题?分片能解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

一些优化查询的方法是: 1.尝试减少流水线本身第一阶段要获取的记录数。 2.在第一个管道中查询的字段上创建索引,最好是$ match 3.索引仅在管道的第一阶段使用。 4.分片将以较小的查询性能代价提高吞吐量(这也取决于) ps:查找无法在分片连接上使用