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

sql-server-2008 – SQL GUID Vs Integer

发布时间:2020-12-12 16:21:11 所属栏目:MsSql教程 来源:网络整理
导读:我最近开始了一个新工作,并注意到所有的SQL表都使用GUID数据类型作为主键. 在我以前的工作中,我们使用整数(自动增量)作为主键,在我看来更容易处理. 例如,说你有两个相关的表;产品和产品类型 – 我可以轻松地查看特定行的两个表的“ProductTypeID”列,以快速映
我最近开始了一个新工作,并注意到所有的SQL表都使用GUID数据类型作为主键.

在我以前的工作中,我们使用整数(自动增量)作为主键,在我看来更容易处理.

例如,说你有两个相关的表;产品和产品类型 – 我可以轻松地查看特定行的两个表的“ProductTypeID”列,以快速映射数据,因为它容易存储数字(2,4,45等),而不是(E75B92A3- 3299-4407-A913-C5CA196B3CAB).

额外的挫折来自我想要了解表的相关性,可悲的是没有数据库图:(

很多人都说GUID更好,因为您可以在C#代码中定义唯一的标识符,例如使用NewID(),而不需要SQL SERVER来执行此操作 – 这也允许您暂时了解ID将是什么….但是我看到有可能仍然可以检索“下一个自动递增的整数”.

DBA承包商报告说,如果我们使用整数类型而不是GUIDS,我们的查询可能会提高30%

为什么GUID数据类型存在,它真正提供了哪些优点?即使是某些专业人士的选择,为什么要实现这一点呢?

解决方法

在某些情况下,GUID作为身份字段很好:

>当有多个SQL(不同的服务器)实例时,您需要稍后组合不同的更新而不影响参照完整性
>断开创建数据的客户端 – 这样他们可以创建数据,而不用担心ID字段已被占用

生成GUID是全局唯一的,这就是为什么它们适合于这种场景.

(编辑:李大同)

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

    推荐文章
      热点阅读