索引字段与子字段的效率

时间:2011-06-03 15:04:33

标签: performance mongodb indexing

我将这类文件存储在一个集合中:

{
    _id : ...
    sender: {memberid:<something>, name:<something>}
}

我按子字段sender.memberid索引集合。我读过某个地方,subfiled的索引效率(性能方面)比字段效率低,因此将文档结构更改为:

{
    _id: ...
    senderid: ...
    sendername: ...
}

并按senderid索引会导致更快的插入和检索,但文章没有解释原因。这两种方法真的有什么区别,如果是,那么为什么呢?

1 个答案:

答案 0 :(得分:2)

索引本身只会影响存储。阅读应该更快,而不是更慢。由于需要更新索引,因此存储会获得一点速度惩罚。但这适用于您创建的每个索引。

如果索引位于顶层或某些嵌入式文档中应该不是问题。

否则这听起来更像premature optimization。像预期的那样使用数据库并创建嵌入文档并将其编入索引。