借助 mongodb 生成自增 id 是否可行?

2019-07-15 18:23:29 +08:00
 a719114136

服务需要生成一个自增 id,正好项目了用到 mogondb,用他的new ObjectId()来生成 id 就不启其他服务了。

有人使用过这个方法吗,是否会带来性能问题?

11568 次点击
所在节点    MongoDB
25 条回复
a719114136
2019-07-16 14:26:41 +08:00
@FightForFreedom 1.自增对数据库建索引有帮助。2.可以用于分页
JCZ2MkKb5S8ZX9pq
2019-07-16 14:29:19 +08:00
Before this discussion, recall that the BSON Object ID consists of:

[4 bytes seconds since epoch, 3 bytes machine hash, 2 bytes process ID, 3 bytes counter]

https://stackoverflow.com/questions/4677237/possibility-of-duplicate-mongo-objectids-being-generated-in-two-different-colle
liuguang
2019-07-16 15:52:17 +08:00
object id 与时间戳、机器码、进程号、和随机数有关,一般而言,重复的概率极低,即使重复了也无关紧要,做好 unique 索引就不用担心了
jziwenchen
2019-07-16 16:04:04 +08:00
担心重复的话 可以给每一个生成器加一个前缀吗 ...
jk1030
2019-07-16 16:13:59 +08:00
@jifengg 单独 incr 不考虑 redis 异常情况? 如果断电是不是还要强制 aof 恢复?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX