18

以下是 MongoDB 中文档结构的两个示例。

{  
 UserId: "123",  
 UserName: "Usain Bolt"  
}



{  
 UserId: NumberLong(123),  
 UserName: "Usain Bolt"  
}

如果我要在 上创建索引UserID,上述两个示例之间的查找查询性能会有所不同吗?

4

2 回答 2

12

我对此事没有具体准确的答案,但这是我的理解:

索引

索引字段可以是任何类型,包括(嵌入式)文档

无论类型如何,索引很可能都经过哈希处理,以便能够以相同的方式进行索引。如果对不同类型有特定的注意事项,标准的 mongodb 文档会做出这种区分。

此处对类似问题的答案是指来自 mongodb 的代码示例,这表明索引比较在类型方面几乎相同,但性能可能与索引大小有关。

于 2012-08-19T05:27:04.040 回答
3

当涉及到索引时,关于字符串与数字要注意的一点是,通常可以很好地理解排序中数字的顺序。但是,当您使用字符串时,将使用Lexicographical Order,因此您需要注意其中的差异。

另外,为了跟进jdi提到的大小角度,字符串可以任意长,当然可以控制,一个long,它将被存储为BSON双精度类型总是8字节

于 2012-08-19T21:33:40.000 回答