Linux下优化MongoDB性能可从以下方面入手:
- 硬件优化:使用SSD硬盘提升I/O性能,增加内存使数据更多驻留内存,升级CPU和网络设备提高处理和传输效率。
- 配置优化:
- 调整
storage.wiredTiger.engineConfig.cacheSizeGB参数,设置缓存大小(建议为系统内存60%)。
- 关闭不必要的服务(如防火墙、SELinux),优化内核参数(如
vm.swappiness)。
- 索引优化:
- 为高频查询字段创建索引,使用复合索引覆盖多字段查询,避免全表扫描。
- 定期分析索引使用情况,删除冗余索引,确保索引选择性高。
- 查询优化:
- 使用投影(
projection)和limit减少返回数据量,避免$where、$regex等全表扫描操作符。
- 利用
explain()分析查询计划,优化慢查询。
- 分片与副本集:
- 大数据量场景使用分片分散负载,选择合适分片键避免数据倾斜。
- 配置副本集提升数据可用性和读取负载均衡。
- 监控与维护:
- 使用
mongostat、mongotop或第三方工具(如PMM)监控性能指标。
- 定期分析慢查询日志,清理无用索引和碎片,优化数据模型[1,2,3,4,5,6,7,8,10,11]。