1***@qq.com
1***@qq.com
  • 发布:2023-02-05 02:52
  • 更新:2023-02-05 16:38
  • 阅读:276

数据库自动生成的 _id 的生成规则是什么?

分类:uniCloud

由于业务需要,我们需要知道dcloud平台的表中自动生成的_id的规则,以避免后续插入的数据与之前的数据的_id造成冲突

例,目前已知:
_id 63d8a84ff43e60b2bad3ab1f

其中通过观察,一共 24个字符,开始的8个字符为10进制时间戳的16进制形式,
如 63d8a84f ---> 1675143247 ---> 2023-01-31 13:34:07

问题为:24位中,剩余的16位 f43e60b2bad3ab1f 的生成规则是什么呢?

2023-02-05 02:52 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

如果你想问id是否有顺序,可否用来排序,建议还是自己创建一个时间戳字段用来排序靠谱,因为id不可控,同时腾讯云和阿里云空间的id位数还不一样,生成规则也不一样,因此建议还是自己创建一个时间戳字段用来排序靠谱

  • 1***@qq.com (作者)

    好的,感谢回复

    2023-02-05 16:30

云开发接单

云开发接单 - 专攻云开发,有云开发的小单子可找我

阿里云就是mongodb的生成规则阿
_Id是一个12字节的 BSON 类型字符串。按照字节顺序,一次代表:

4字节:UNIX时间戳

3字节:表示运行MongoDB的机器

2字节:表示生成此_id的进程

3字节:由一个随机数开始的计数器生成的值

腾讯云是自研的数据库,但原理也差不多阿

云开发接单

云开发接单 - 专攻云开发,有云开发的小单子可找我

只要是系统自动生成
全世界都会不一样
不会存在冲突的问题

要回复问题请先登录注册