Mongodb集合_id

时间:2014-08-14 09:16:48

标签: performance mongodb collections

默认情况下,_id字段生成为new ObjectId(),其中包含96位(12字节)。

_id大小会影响收集效果吗?如果我使用128位(160位或256位)字符串而不是本地ObjectId怎么办?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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