5

我有一组照片。可以从其他一些集合(事件、新闻、帖子等)中引用它们(一对多)

我可以像这样创建参考:

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

或者

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})

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

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

4

1 回答 1

0

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

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

于 2019-11-05T11:18:43.533 回答