当前位置:  开发笔记 > 数据库 > 正文

要使用哪种类型的数据库记录ID:long还是guid?

如何解决《要使用哪种类型的数据库记录ID:long还是guid?》经验,为你挑选了1个好方法。

近年来,我使用的是MSSQL数据库,表中所有唯一记录的ID列类型都是bigint(long).这是自动增量,通常 - 工作正常.

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

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

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

您对我的镜像应用程序(和数据库)的建议是什么:保留传统ID或转移到GUID?

在此先感谢您的回复!



1> ShuggyCoUk..:

guids有

好处:

能够从数据库脱机创建它们而不必担心冲突.

你永远不会用完它们

缺点:

顺序插入可能表现不佳(特别是在聚簇索引上).

Sequential Guids解决了这个问题

每行占用更多空间

干净利落地制造一个并不便宜

但如果客户端正在生成它们,这实际上没问题

该列应该仍然具有唯一约束(作为PK或作为单独约束,如果它是某些其他关系的一部分),因为没有什么能阻止某人手动提供GUID并且意外/故意违反唯一性.

如果空间不打扰你,你的表现如果没有受到显着影响,他们会让很多问题消失.该决定不可避免地针对应用程序的个性化需求.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有