MongoDB 性能调优
通过索引、查询分析和慢日志优化数据库性能。 · 难度:入门 · +15XP
性能调优核心
MongoDB 性能主要受索引、查询模式、硬件和架构影响。常用工具包括 explain()、慢查询日志和 MongoDB Atlas 监控。
使用 explain()
db.collection.find({ status: 'active' }).explain('executionStats');关注字段:totalDocsExamined(扫描文档数)和 nReturned(返回文档数)。理想情况是两者接近。
创建合适的索引
| 索引类型 | 适用场景 |
|---|---|
| 单字段索引 | 等值查询 |
| 复合索引 | 多字段排序/查询 |
| 覆盖索引 | 查询字段全在索引中 |
db.collection.createIndex({ status: 1, createdAt: -1 });慢查询日志
设置慢查询阈值(默认100ms):
db.setProfilingLevel(1, { slowms: 50 });
db.system.profile.find().pretty();其他优化
- 使用投影只返回必要字段
- 避免使用 $ne、$nin 等低效操作符
- 对大量数据使用批量写入
练习提示
创建一个包含100万条记录的集合,用 explain() 分析一个没有索引的查询,然后创建索引后再次分析。