在Ubuntu上优化MongoDB查询速度可从以下方面入手:
vm.swappiness
)减少磁盘I/O。/etc/mongod.conf
中设置storage.wiredTiger.engineConfig.cacheSizeGB
,建议为可用内存的50%-70%。operationProfiling
监控慢查询(阈值可设为100ms)。// 复合索引示例(覆盖查询需求)
db.users.createIndex({ status: 1, age: -1, name: 1 });
reIndex()
重建碎片化索引,删除冗余索引。$or
、$ne
等低效操作。skip()
和limit()
分页,通过投影({ field: 1, _id: 0 }
)减少返回字段。$match
)、排序($sort
)等操作前置,利用索引加速。mongostat
、mongotop
或第三方工具(如PMM)实时监控性能。explain("executionStats")
定位低效查询,针对性优化。mongodump
备份数据,升级到最新稳定版本以获取性能改进。注意:优化前需在测试环境验证效果,避免生产环境直接调整。优先通过索引和查询重构提升性能,再考虑硬件升级。