我正在尝试提高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
和group
。通过烧瓶服务器运行这些查询时,db.profile
统计信息表明查询执行大约花费了17-30秒。
这是mongodb在复杂查询中的预期行为。