索引字段与子字段的效率



我在一个集合中存储了这类文档:

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

我通过子字段sender.memberid为集合编制索引。我在某个地方读到,按子文件索引的效率(性能方面)不如按字段索引,所以将文档结构更改为:

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

并且senderid索引会导致更快的插入和检索,但文章没有解释原因。这两种方法真的有什么不同吗?如果有,为什么?

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

如果索引是在顶层还是在某些嵌入文档中,则不应该是一个问题。

否则,这听起来更像是过早的优化。像预期的那样使用数据库,并创建嵌入文档并为其编制索引。

最新更新