【问题标题】:Mongodb collection _idMongoDB集合_id
【发布时间】:2014-08-14 09:16:47
【问题描述】:

默认_id字段生成为new ObjectId(),有96位(12字节)。

_id 的大小会影响收集性能吗?如果我使用 128 位(160 位或 256 位)字符串而不是原生的 ObjectId 会怎样?

【问题讨论】:

标签: performance mongodb collections


【解决方案1】:

在查询性能方面,这不太重要。 _id 上的索引是实现为二叉树的排序索引,因此值的实际长度并不重要。

使用更长的字符串作为 _id 当然会使您的文档更大。更大的文档意味着更少的文档将被缓存在 RAM 中,这将导致更大的数据库的性能更差。但是,当该字符串仍然是文档的一部分时,将它们用作 _id 会节省空间,因为您不再需要额外的 _id。

【讨论】:

    【解决方案2】:

    默认情况下,_id 归档是索引的(主键),如果您倾向于使用为它设置的自定义值(比如字符串),实际上它只会消耗更多空间。它不会对您的查询性能产生任何重大影响。索引大小几乎不会影响查询性能。您可以使用示例代码验证这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多