我现在很困惑 MongoDB 可以为单个服务器生成多少个唯一 ID。
当然,对于多个服务器,其 id 对象的服务器部分也会发生变化,但对于单个服务器,唯一会发生变化的部分似乎是 pid 部分(2 位)和递增部分(4 位)。如果我对此有误,请纠正我。
只有 6 个十六进制数字发生变化,我很确定单个服务器只有 16,777,216 种可能的组合。
我问这个问题的原因是因为我正在考虑使用 MongoDB 来存储数十亿条唯一记录,并且这个数字会不断增长。
将 MongoDB 用于此类工作是否安全?如果我犯了任何数学错误或逻辑错误,我很抱歉。
谢谢!
最佳答案
你应该是安全的。如果你让 MongoDB 自己生成 id,它会生成一个 12-byte value。 ,其中 4 个字节是从纪元开始的秒数,3 个字节是计数器。这足以满足每台服务器超过 7.20 * 10^16(即 2^(7*8))个文档,和/或每台服务器每秒 1600 万(即 2^(3*8))个文档。
关于mongodb - MongoDB 可以为单个服务器生成多少个唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218204/