与包含GUID的nvarchar(32)相比,使用UniqueIdentifier数据类型的优点

本文关键字:使用 UniqueIdentifier 数据类型 相比 GUID 包含 nvarchar | 更新日期: 2023-09-27 18:12:41

我想知道SQL Server中UniqueIdentifier数据类型的优点是什么

超过 nvarchar(32)数据类型,包含GUID String(从c#发送)。

与包含GUID的nvarchar(32)相比,使用UniqueIdentifier数据类型的优点

从服务器的角度:

  • 我希望Guid字段能够更有效地存储-它只需要16字节,而不是32或潜在的64+,具体取决于nvarchar如何存储
  • 可以被服务器视为不透明的二进制数据-例如,在进行比较时不需要智能。不区分文化或大小写。它基本上是而不是文本数据,因此不存在与文本相关的所有问题和复杂性。
  • 服务器可以决定使用Guid的已知结构来更有效地进行索引。例如,如果某些位比其他位更可能随机分布,则可以将其用于索引。

从程序员的角度看:

  • 对预期数据进行更清晰的表述。
  • 你不需要任何验证,你永远不会担心无效数据——它们只是guid。

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