【发布时间】:2011-02-17 19:04:09
【问题描述】:
我最近开始了一项新工作,并注意到所有 SQL 表都使用 GUID 数据类型作为主键。
在我之前的工作中,我们使用整数(自动增量)作为主键,我认为它更容易使用。
例如,假设您有两个相关的表; Product 和 ProductType - 我可以轻松地交叉检查两个表的“ProductTypeID”列中的特定行,以快速映射我脑海中的数据,因为它易于存储数字(2、4、45 等)而不是(E75B92A3- 3299-4407-A913-C5CA196B3CAB)。
额外的挫败感来自于我想了解表是如何相关的,遗憾的是没有数据库图:(
很多人说 GUID 更好,因为您可以在 C# 代码中定义唯一标识符,例如使用 NewID() 而不需要 SQL SERVER 来执行它 - 这也允许您临时知道 ID 将是什么。 ...但我已经看到仍然可以检索“下一个自动递增的整数”。
一位 DBA 承包商报告说,如果我们使用整数类型而不是 GUIDS,我们的查询速度可能会提高 30%...
为什么存在 GUID 数据类型,它真正提供了哪些优势?...即使是某些专业人士的选择,也必须有充分的理由说明为什么要实施它?
【问题讨论】:
-
GUID vs INT IDENTITY的可能重复
标签: sql-server-2008 guid auto-increment