在MongoDB中,索引可以提高查询性能。以下是创建和管理MongoDB索引的一些常见方法和策略。
- 创建单字段索引:
db.collection.createIndex({ field: 1 }) // 升序索引
db.collection.createIndex({ field: -1 }) // 降序索引
- 创建复合索引:
db.collection.createIndex({ field1: 1, field2: -1 })
- 创建唯一索引:
db.collection.createIndex({ field: 1 }, { unique: true })
- 创建带有额外选项的索引:
db.collection.createIndex(
{ field: 1 },
{
unique: true,
background: true,
expireAfterSeconds: 3600 // 适用于设置文档存活时间(TTL索引)
}
)
- 查看集合的索引:
db.collection.getIndexes()
- 删除索引:
db.collection.dropIndex("indexName")
- 为排序操作优化索引:
db.collection.createIndex({ field: 1 }, { unique: false, background: true })
- 为聚合操作优化索引:
db.collection.createIndex({ field: 1 }, { unique: false, background: true })
为查询提供最佳索引:
分析查询模式,为查询中的字段创建索引,并考虑索引方向以最大化查询性能。
- 使用explain()分析查询性能:
db.collection.find({ query }).explain("executionStats")
请根据实际需求和数据模式选择合适的索引策略。