针对nvarchar的Guid字段的优势包含Guid?

时间:2011-10-30 08:22:04

标签: c# sql-server uniqueidentifier

我想知道Db中UniqueIdentifier column的优点是什么

超过 nvarchar(32)列,其中包含Guid 字符串 being sent from c#

1 个答案:

答案 0 :(得分:14)

从服务器的角度来看:

  • 我希望更有效地存储Guid字段 - 它只需要8个字节,而不是32个或可能是64个字节,具体取决于nvarchar的存储方式
  • 服务器可以将 视为不透明的二进制数据 - 例如,在进行比较时, no 智能是必需的。没有文化或案例敏感性。它基本上是 not 文本数据,因此没有与文本相关的所有问题和复杂性。
  • 服务器可以决定使用Guid的已知结构来更有效地进行索引。例如,如果某些位比其他位更可能是随机分布的,那么这些位可以用于索引。

从程序员的角度来看:

  • 它更清楚地说明了预期的数据。
  • 您不需要任何验证,并且您永远不会对无效数据感到担忧 - 它们只是GUID。

我非常喜欢以最接近数据逻辑含义的任何形式保存数据。例如,如果你要存储日期和时间数据,那么如果你有一个日期/时间值而不是一个字符串,它会让生活很多更容易进行比较等。转换为字符串(或任何其他表示,但通常是字符串)的转换只应在必要的地方执行。