gpt4 book ai didi

database - 使用什么类型的数据库记录id : long or guid?

转载 作者:太空狗 更新时间:2023-10-30 01:44:44 25 4
gpt4 key购买 nike

这几年一直在用MSSQL数据库,表中所有唯一记录的ID列类型都是bigint(long)。它是自动递增的,并且通常工作正常。

目前我观察到人们更喜欢使用 GUID 来记录身份。

将 bigint 交换为 guid 以获得唯一记录 ID 是否有意义?

我认为这没有意义,因为生成 bigint 和排序总是比 guid 快,但是......当使用两个(或更多)独立的应用程序和数据库实例并使它们保持同步时会出现一些麻烦,因此您必须管理 sql 服务器之间的 id 池(例如:sql1 使用 id 从 100 到 200,sql2 使用 id 从 201 到 300)——这是薄冰。使用 guid id,您无需关心 id 池。

您对我的镜像应用程序(和数据库)有何建议:继续使用传统 ID 还是转向 GUID?

预先感谢您的回复!

最佳答案

向导有

优点:

  • 能够从数据库离线创建它们,而不必担心冲突。
  • 你永远用不完

缺点:

  • 顺序插入可能表现不佳(尤其是在聚集索引上)。
  • 每行占用更多空间
  • 干净地创造一个并不便宜
    • 但如果客户端正在生成它们,这实际上没有问题

该列仍应具有唯一性约束(作为 PK 或作为其他关系的一部分的单独约束),因为没有什么可以阻止某人手动提供 GUID 和意外/故意违反唯一性。

如果空间不影响您和您的表现(如果没有受到显着影响),那么很多问题就会消失。该决定不可避免地特定于应用程序的个别需求。

关于database - 使用什么类型的数据库记录id : long or guid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/551766/

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