gpt4 book ai didi

mysql - 使用自动递增 id 或 sha1 哈希的主键 mysql?

转载 作者:可可西里 更新时间:2023-11-01 07:10:10 24 4
gpt4 key购买 nike

我可以将自动递增 id 字段作为我的主键或 sha1 哈希。

我应该选择哪个?

哪个在性能方面会更好?

最佳答案

在一些应用程序驱动的情况下,您希望使用全局唯一 ID (UUID/GUID):

  1. 您希望(或正在)使用分片策略来扩展写入。您不希望分片节点复制键
  2. 您希望能够安全地将数据从一个节点传输到另一个保留 key 。如果您想保持外键关系完整,这一点至关重要。
  3. 您的应用程序还用于离线(家庭销售家庭维修等),离线应用程序会定期同步与“真理之源”。您希望这些离线 key 是唯一的,而无需进行远程调用。否则,由您提出一种策略来重组键和关系的方式。使用自动增量策略并根据您使用的 RDBMS,这可能是一项非常重要的任务。

如果您没有上述的用例或类似的东西,您可以使用一个自动递增的 id,如果这让您感到舒服的话;但是,您可能仍然想考虑 UUID/GUID

权衡:

关于 UUID/GUID 键的速度/大小有很多意见。归根结底,这是一种权衡,有很多方法可以提高或降低数据库的速度。理想情况下,您希望将索引存储在 RAM 中以便尽可能快;但是,这是一种权衡,您必须权衡其他因素。

关于 UUID/GUID 的其他注意事项:

  1. 许多 RDBMS 可以生成 UUID。
  2. 您还可以通过您的 application 生成一个 UUID (您不必绑定(bind)到 RDBMS 即可生成)。
  3. 开发人员/测试人员可以轻松地将数据从一个环境移植到另一个环境,并让应用程序按预期工作。这是一个经常被忽视的用例;然而,它是使用 UUID/GUID 策略的最有力案例之一。
  4. 有些数据库针对离线使用进行了优化 (CouchDB),其中 UUID 就是您所获得的。

关于mysql - 使用自动递增 id 或 sha1 哈希的主键 mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10763865/

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