gpt4 book ai didi

mysql - 外键的 UUID

转载 作者:行者123 更新时间:2023-12-05 00:46:52 25 4
gpt4 key购买 nike

为什么将 UUID 用作主键?它们需要大量内存来存储。据我了解,它们被用作主键,因为每个生成的值都是唯一的,这在合并 2 个数据库时很有帮助,因为不会发生冲突。

如果 UUID 用于 API 端点猜测的隐私,为什么不使用 ID、数据库编号。然后使用它作为主键对它们进行散列?然后ID可以用于关系,很方便。 ID 和数据库编号的哈希值。可以用于primary_key,使用ID查找数据条目也比UUID快。

最佳答案

通用唯一 ID (UUID) 主要用于:

  • 在各种系统中生成标识符,无需与中央机构协调(例如数据库服务器中的序列号生成器)。
  • 在联合数据库等系统之间共享数据记录,避免发生冲突。

据我所知,您关于 API 端点猜测隐私的观点最初并不是设计目标。但考虑到当代基于 URL 的访问方法,它可能是另一个特性。

UUID 实际上是一个128 位值。不要将其与通常用于向人类显示的 36 个字符的十六进制字符串混为一谈。

对于支持 UUID 作为数据类型的数据库,例如 Postgres,使用 UUID 数据类型的键使用的内存和存储空间是 64 位整数序列号的两倍,或 32 位整数的四倍( 40 亿范围),这是代理键的通常其他选择。这是否是“很多”是每个数据库设计人员需要做出的判断。鉴于现代计算硬件中内存和存储空间的价格低廉且随时可用,我通常认为 UUIDS 的好处非常值得额外的内存/存储。

如果您需要通用唯一 ID,请使用通用唯一 ID (UUID)。无需自己发明。

关于mysql - 外键的 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422174/

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