在 MongoDB 中,索引是提高查询效率的关键。以下是一些 MongoDB 社区推荐的索引设计最佳实践:

索引类型

  1. 单字段索引:适用于单一字段的查询。

    db.collection.createIndex({ field: 1 })
    
  2. 复合索引:适用于多个字段的查询,字段顺序很重要。

    db.collection.createIndex([ { field1: 1 }, { field2: -1 } ])
    
  3. 文本索引:适用于全文搜索。

    db.collection.createIndex({ field: "text" })
    

最佳实践

  1. 选择合适的索引字段:索引字段应与查询中的字段相匹配。
  2. 避免过度索引:过多的索引会降低写入性能。
  3. 使用索引覆盖:尽可能使用索引覆盖,以避免全表扫描。
  4. 考虑索引顺序:对于复合索引,字段顺序很重要。
  5. 定期维护索引:使用 reIndex 命令重建索引。

示例

假设我们有一个用户集合,字段包括 usernameemailage

  • 如果我们经常根据 username 查询,则应创建一个单字段索引:

    db.users.createIndex({ username: 1 })
    
  • 如果我们经常根据 emailage 查询,则应创建一个复合索引:

    db.users.createIndex([ { email: 1 }, { age: -1 } ])
    

MongoDB Index

更多信息,请访问 MongoDB 官方文档


以上是 MongoDB 索引设计的一些基本概念和最佳实践。希望对您有所帮助!