加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

什么类型的数据库记录id要使用:long或guid?

发布时间:2020-12-12 08:54:17 所属栏目:MsSql教程 来源:网络整理
导读:近年来我使用的是MSSQL数据库,表中的所有唯一记录都具有bigint(long)的ID列类型.它是自动增量,一般 – 工作正常. 目前我正在观察人们喜欢使用GUID记录的身份. 将bigint交换为唯一记录ID的guid是否有意义? 我认为生成bigint是没有意义的,排序总是比guid快,但
近年来我使用的是MSSQL数据库,表中的所有唯一记录都具有bigint(long)的ID列类型.它是自动增量,一般 – 工作正常.

目前我正在观察人们喜欢使用GUID记录的身份.

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

我认为生成bigint是没有意义的,排序总是比guid快,但是当使用两个(或更多)分离的应用程序和数据库实例并保持同步时,有些麻烦来了,所以你必须管理sql服务器之间的id池(例如:sql1使用id从100到200,sql2使用id从201到300) – 这是一个薄冰.
使用guid id,你不关心id池.

对于我的镜像应用程序(和数据库)你有什么建议:保持传统ID或移动到GUID?

提前感谢您的回复!

解决方法

guids有了

优点:

能够从数据库离线创建它们,而不用担心碰撞.
>你永远不会用尽它们

缺点:

>顺序插入可以执行得很差(特别是在集群索引上).

> Sequential Guids修复这个

>每行占用更多的空间
创造一个干净不便宜

>但是如果客户端生成它们,这其实没有问题

列应该仍然有一个唯一的约束(作为PK或作为一个单独的约束,如果它是一些其他关系的一部分),因为没有任何东西阻止有人提供GUID手动和意外/故意违反唯一性.

如果空间不打扰你和你的表现,如果不是很大的影响他们使很多问题消失.该决定不可避免地针对应用程序的个人需求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读