gpt4 book ai didi

node.js - 在 Node 中使用 128 位长(uuid)还是 7 位长(shortid)唯一 ID 生成器更好?

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:39 26 4
gpt4 key购买 nike

我目前正在使用uuid npm package为我的 node.js 应用程序中的图形数据库元素生成唯一 ID。

它生成符合 RFC 标准的 128 位长 ID,例如

6e228580-1cb5-11e8-8271-891867c15336

我目前正在考虑转到 shortid npm package ,它执行类似的工作,但生成 7 位长 ID:

PPBqWA9

我的数据库请求已经很长,我想缩短它们,因此我正在考虑从 uuid 切换到 shortid

但是,问题是:我知道 128 位长的兼容 UUID 生成器保证它是唯一的。那7位的呢?我知道它可以提供大约 78364164096 独特的可能性,这还不错,但是我的数据库中已经有大约 50M 的唯一对象,每个对象都有一个唯一的索引,所以我只是好奇该算法是否考虑到 78364164096 仅是 50000 的 1350 倍,确实能够生成唯一 ID。

有什么想法吗?我应该使用 7 位标识符还是 128 位标识符?

最佳答案

我假设 shortid 包提供的较短 id 是完整的 56 位长。但很可能它们占用 56 位长的空间(7 个字节),但只占用 42 位长的有效负载。

56 位和 128 位 ID 都会发生冲突。差异在于发生碰撞的概率。我认为 56 位要求您能够处理冲突,因此您最终会得到更复杂的代码。 128 位不太可能产生冲突,以至于通常不被考虑。

为了简单和安全,我会选择耗时考验的128位。

关于node.js - 在 Node 中使用 128 位长(uuid)还是 7 位长(shortid)唯一 ID 生成器更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49036682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com