MongoDB一个复合索引与多个单字段索引

Ale*_*lex 5 indexing mongodb

我收集了一些照片.可以从其他一些集合(事件,新闻,帖子等)引用它们(一对多)

我可以像这样创建引用:

db.photos.insert({ parent:{ collection: 'events', id: 12345 }})
db.photos.insert({ parent:{ collection: 'events', id: 54321 }})
//or just DBRef
db.photos.ensureIndex({parent:1})
Run Code Online (Sandbox Code Playgroud)

要么

db.photos.insert({ post_id: 12345 })
db.photos.insert({ event_id: 54321 })

db.photos.ensureIndex({post_id:1}, {sparse: true})
db.photos.ensureIndex({event_id:1}, {sparse: true})
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,我们有一个大的复合索引在第二种情况下 - 一些较小的索引

每种方法的优缺点是什么?

小智 0

首先,检查哪个字段的点击次数。其次,创建一个具有最大命中字段的复合索引。第三,创建一个具有最小命中字段的复合索引。

注意:如果一次命中大量字段,则不使用复合索引。其他情况创建单个索引。