You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB长期使用后聚合查询效率下降问题排查与优化求助

单实例MongoDB聚合查询性能差异问题分析与优化

环境背景

  • 单实例(standalone)MongoDB 7.0
  • 数据库仅含单个集合,约3200万条文档,近半数文档存在多次更新操作
  • 已基于column1和column2创建复合索引column1_1_column2_1

原查询与集合复制操作

原用于统计文档数量的聚合管道:

db.collection.aggregate([ 
  { $match: { column1: "...", column2: "..." }},
  { $count: "count" }
],{hint:"column1_1_column2_1"})

通过mongodump和mongorestore完成原集合的复制,预期两个集合的查询执行效率一致。

问题现象

将聚合管道新增column3匹配条件后:

db.collection.aggregate([ 
  { $match: { column1: "...", column2: "...", "column3": "..." }},
  { $count: "count" }
],{hint:"column1_1_column2_1"})

原集合的该查询执行速度极慢,但复制后的集合查询表现正常。通过explain分析发现,两个集合的seek阶段差异显著(左侧为原数据库慢查询截图,右侧为复制数据库截图)。

已尝试的优化操作

  • 执行compact命令
  • 重建目标索引

问题咨询

  1. 导致原集合查询变慢的直接原因是什么?
  2. 如何在无停机的前提下提升原数据库的查询速度?
  3. 该性能差异问题的根本原因是什么?

内容的提问来源于stack exchange,提问作者WeiAnHsieh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:09:50