温馨提示×

MongoDB索引怎样创建更有效

小樊
44
2025-08-22 10:07:45
栏目: 云计算

创建高效MongoDB索引需遵循以下原则并配合实用策略:

  1. 精准匹配查询模式
    • 单字段高频查询用单字段索引,如db.collection.createIndex({ field: 1 })
    • 多字段组合查询用复合索引,字段顺序遵循“最左前缀原则”,将高频筛选字段放前面,排序字段放最后,如db.collection.createIndex({ user_id: 1, create_time: -1 })
  2. 优化索引结构
    • 覆盖索引:查询字段全部包含在索引中,避免回表查询,如db.collection.createIndex({ name: 1, age: 1 })用于find({ name: "Alice" }, { _id: 0, name: 1, age: 1 })
    • 部分索引:通过partialFilterExpression仅索引满足条件的数据,减少索引体积,如db.products.createIndex({ price: 1 }, { partialFilterExpression: { price: { $gt: 0 } } })
  3. 避免冗余与低效索引
    • 删除未使用的索引,通过db.collection.getIndexes()查看并清理。
    • 避免在低选择性字段(如布尔值、枚举值)上建索引。
  4. 性能调优技巧
    • 使用explain("executionStats")分析查询是否命中索引,优化执行计划。
    • 定期重建索引以减少碎片,db.collection.reIndex()
    • 对大集合考虑分片,分散索引负载。
  5. 特殊场景索引
    • 地理空间查询用地理空间索引(2d/2dsphere),支持near等操作。
    • 全文搜索用文本索引,支持$text操作符。
    • 保证唯一性用唯一索引,如db.users.createIndex({ email: 1 }, { unique: true })

通过以上策略,可显著提升MongoDB查询效率,降低资源消耗。

0