我将这类文件存储在一个集合中:
{
_id : ...
sender: {memberid:<something>, name:<something>}
}
我按子字段sender.memberid
索引集合。我读过某个地方,subfiled的索引效率(性能方面)比字段效率低,因此将文档结构更改为:
{
_id: ...
senderid: ...
sendername: ...
}
并按senderid
索引会导致更快的插入和检索,但文章没有解释原因。这两种方法真的有什么区别,如果是,那么为什么呢?
答案 0 :(得分:2)
索引本身只会影响存储。阅读应该更快,而不是更慢。由于需要更新索引,因此存储会获得一点速度惩罚。但这适用于您创建的每个索引。
如果索引位于顶层或某些嵌入式文档中应该不是问题。
否则这听起来更像premature optimization。像预期的那样使用数据库并创建嵌入文档并将其编入索引。