长聚合管道的MongoDB性能改进

Bha*_*avi 5 mongodb mongodb-query aggregation-framework

我正在尝试提高mongo查询(一页长)的性能,该查询使用各种管道阶段并将数据转换为各种格式。

SAMPLE DATA

https://jsoneditoronline.org/?id=d2075cafc09e4c1eb71d323b81fb474f

QUERY

https://jsoneditoronline.org/?id=6ecf6baac4a247d6952096aa1cc019b3

EXECUTION STATS WITH INDEX ON MULTIPLE FIELD

https://jsoneditoronline.org/?id=a1dd2e4286c14c3e886e120f59a993d5

单个查询的执行时间少于2秒,但是使用以下配置进行负载测试时

记录总数= 20,000并发-50(30分钟)具有3个副本集的M30实例在所有匹配和排序字段上都设置了索引负载测试完成后,没有其他进程/查询在运行。

该查询还有一个版本facet与配合使用groupdb.profile统计信息显示,通过烧瓶服务器运行这些查询时,查询执行大约需要17-30秒。

在涉及复杂查询时,这是mongodb的预期行为吗?