【发布时间】:2014-08-14 09:16:47
【问题描述】:
默认_id字段生成为new ObjectId(),有96位(12字节)。
_id 的大小会影响收集性能吗?如果我使用 128 位(160 位或 256 位)字符串而不是原生的 ObjectId 会怎样?
【问题讨论】:
标签: performance mongodb collections
默认_id字段生成为new ObjectId(),有96位(12字节)。
_id 的大小会影响收集性能吗?如果我使用 128 位(160 位或 256 位)字符串而不是原生的 ObjectId 会怎样?
【问题讨论】:
标签: performance mongodb collections
在查询性能方面,这不太重要。 _id 上的索引是实现为二叉树的排序索引,因此值的实际长度并不重要。
使用更长的字符串作为 _id 当然会使您的文档更大。更大的文档意味着更少的文档将被缓存在 RAM 中,这将导致更大的数据库的性能更差。但是,当该字符串仍然是文档的一部分时,将它们用作 _id 会节省空间,因为您不再需要额外的 _id。
【讨论】:
默认情况下,_id 归档是索引的(主键),如果您倾向于使用为它设置的自定义值(比如字符串),实际上它只会消耗更多空间。它不会对您的查询性能产生任何重大影响。索引大小几乎不会影响查询性能。您可以使用示例代码验证这一点。
【讨论】: