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

哪个是SQL Server数据库中最常见的ID类型,哪个更好?

发布时间:2020-12-12 07:30:40 所属栏目:MsSql教程 来源:网络整理
导读:使用Guid(UniqueIdentifier)作为Primary / Surrogate Key列或序列化的“identity”整数列是否更好;为什么它更好?在哪种情况下你会选择一个而不是另一个? 解决方法 我个人使用INT IDENTITY来处理我的大多数主键和集群键. 您需要将作为逻辑构造的主键分开 –
使用Guid(UniqueIdentifier)作为Primary / Surrogate Key列或序列化的“identity”整数列是否更好;为什么它更好?在哪种情况下你会选择一个而不是另一个?

解决方法

我个人使用INT IDENTITY来处理我的大多数主键和集群键.

您需要将作为逻辑构造的主键分开 – 它唯一地标识您的行,它必须是唯一且稳定且非NULL. GUID也适用于主键 – 因为它保证是唯一的.如果使用SQL Server复制,GUID作为主键是一个不错的选择,因为在这种情况下,无论如何都需要唯一标识的GUID列.

SQL Server中的聚类键是一个物理构造,用于数据的物理排序,并且更难以正确.通常,SQL Server上的索引女王Kimberly Tripp也需要一个好的集群密钥,它是唯一的,稳定的,尽可能窄的,并且理想情况下不断增加(INT IDENTITY是).

在这里查看她关于索引的文章:

> GUIDs as PRIMARY KEYs and/or the clustering key
> The Clustered Index Debate Continues…
> Ever-increasing clustering key – the Clustered Index Debate……….again!

对于群集密钥,GUID是一个非常糟糕的选择,因为它很宽,完全随机,因此导致错误的索引碎片和糟糕的性能.此外,群集密钥行也存储在每个非群集(附加)索引的每个条目中,因此您确实希望保持较小 – GUID为16字节,而INT为4字节,并且有几个非聚集索引和几百万行,这是一个巨大的差异.

在SQL Server中,您的主键默认情况下是您的群集密钥 – 但它不一定是.您可以轻松地使用GUID作为NON-Clustered主键,并使用INT IDENTITY作为您的群集键 – 只需要了解一点.

(编辑:李大同)

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

    推荐文章
      热点阅读