【问题标题】:GUID in MongoDBMongoDB 中的 GUID
【发布时间】:2022-11-14 18:04:08
【问题描述】:

我了解自动创建的唯一 ID 的数量是有限制的。如果我没记错的话,我想是1600万。如果唯一实体的数量增加,这是否可以扩展,或者一个用户 GUID 也可以提供更多的唯一性?

因此,如果我使用开箱即用的默认对象 _id,我可以将多少个独特的项目放入一个集合中。我读到有 12 个字节,但根据这些字节的使用方式,可能会有不同数量的唯一文档。如何计算可以存储多少个唯一文档?

【问题讨论】:

    标签: mongodb uuid


    【解决方案1】:

    理论最大值约为 7.9228162514e+28。你哪来的1600万?

    实际上,ObjectID 包括

    • 一个 4 字节的时间戳,表示 ObjectId 的创建,以自 Unix 纪元以来的秒数为单位。

    • 每个进程生成一次的 5 字节随机值。这个随机值对于机器和过程是唯一的。

    • 一个 3 字节递增计数器,初始化为随机值。

    因此,仅 3 字节计数器就是每秒 16777216 个唯一 ID。

    一个 5 字节的值将是 1.0995116277e+12 种可能性。因此,仅机器和流程的独特价值就有大约 160 亿个独特组合。

    【讨论】:

      猜你喜欢
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多