MongoDB性能调优
通过索引优化、查询分析和硬件配置提升数据库性能。 · 难度:入门 · +15XP
性能调优
MongoDB 性能调优主要关注索引、查询效率、内存管理和写入确认级别。使用 explain() 分析查询执行计划。
1. 索引优化
- 为常用查询字段创建索引
- 使用复合索引匹配排序和过滤
- 避免全表扫描(COLLSCAN)
2. 使用 explain()
db.users.find({ age: { $gt: 25 } }).explain('executionStats');
// 关注字段:totalDocsExamined, nReturned, IXSCAN vs COLLSCAN3. 慢查询监控
// 设置慢查询阈值(毫秒)
db.setProfilingLevel(1, { slowms: 100 });
// 查看慢查询日志
db.system.profile.find().sort({ ts: -1 }).limit(5);4. 硬件与配置
| 资源 | 建议 |
|---|---|
| 内存 | 工作集(索引+活跃数据)应小于 RAM |
| 磁盘 | 使用 SSD,避免机械硬盘 |
| 连接池 | 根据并发调整连接数 |
5. 写入性能
降低 writeConcern 级别(如 w: 1)可提高写入速度,但降低数据安全性。
练习提示: 创建一个包含 100 万条数据的集合,分别在有索引和无索引情况下执行查询,对比 explain 输出。