2010-07-10 40 views
2

我现在很困惑MongoDB可以为单个服务器生成多少个唯一ID。当然,对于多个服务器,它们的id对象的服务器部分也会发生变化,但是对于一台服务器,唯一可以改变的部分看起来是pid部分(2位数)和递增部分(4位数) 。如果我对此有错,请纠正我。MongoDB可以为单个服务器生成多少个唯一的ID?

由于只有6个十六进制数字发生了变化,我非常肯定,单个服务器只有16777216个可能的组合。

我问这个问题的原因是因为我正在考虑使用MongoDB来存储数十亿条独特的记录,并且数量会不断增长。

使用MongoDB进行这种工作是否安全?如果我犯了数学错误或逻辑错误,我很抱歉。

谢谢!

回答

3

你应该安全。如果你让MongoDB本身生成id,它会生成一个12-byte value,其中4个字节是从epoch开始的秒数,3个字节是计数器。这对于每个服务器超过7.20×10^16(即2 ^(7×8))个文档和/或每个服务器每秒超过1600万(即2×(3×8))是足够的。

+0

非常感谢您的帮助!在这种情况下,我怀疑我会耗尽独特的ID。 ;) – 2010-07-10 20:22:17

相关问题