什么是索引?

索引是提升数据库查询效率的利器,类似于书籍目录。合理使用索引可将查询速度提升10-1000倍

MongoDB_Index_Structure

索引优化策略 ✅

  1. 选择性索引

    • 对唯一值字段(如 _id)建索引
    • 避免对低选择性字段(如 status: 1)过度索引
    • 使用 explain() 分析查询计划
  2. 复合索引技巧

    • 字段顺序影响性能:按查询频率排序
    • $orderby 指定排序方向
    • 避免索引字段过多(通常不超过5个)
    Composite_Index_Optimization
  3. 索引类型选择

    • B-tree:适用于范围查询、排序(默认类型)
    • Hash:适合等值查询(如 find({x: 1})
    • Text:全文搜索场景
    • Geospatial:地理空间查询
    B_tree_vs_Hash_Index

常见误区 ⚠️

  • ❌ 未定期清理冗余索引
  • ❌ 忽略索引字段的数据分布
  • ❌ 在写密集型场景过度使用索引
  • ❌ 未验证索引有效性(hint() 工具可辅助)

扩展阅读 📚

最佳实践 🛠️

  1. 使用 db.collection.stats() 监控索引使用率
  2. 对高频查询字段优先建索引
  3. 定期执行 reIndex() 优化数据分布
  4. 通过 explain() 分析查询计划中的 IXSCAN 操作
Index_Optimization_Before_After