mongodb - MongoDB 可以为单个服务器生成多少个唯一 ID?

标签 mongodb uniqueidentifier database

我现在很困惑 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/

相关文章:

javascript - Mongodb - 为什么我的 Users.findOne 未定义?

javascript - 使用 mongoose 进行嵌套数组查询

MongoDB:我应该一直保持全局 session 吗?

php - 生成唯一 key 的简单算法

javascript - 如何将项目插入 Mongoose 对象内的数组?

c++ - 如何组合加密哈希?

c# - 根据日期和自动递增的数字创建一个唯一的数字

database - Visual Studio 数据集设计器刷新表

java - 使用 Thin Driver 设置扫描关闭

mongodb - nosql:MongoDB、Cassandra 或数据仓库的替代方案