SQL server中的GUID是什么数据类型?
SQL(特别是MS SQL server 2008)如何在内部存储和比较GUID?是数字还是字符串?另外,当使用GUID作为主键时,性能是否会受到很大影响 除了这里提到的集群问题之外: 我认为它应该是128位的数字(如上所述),但我找不到有关如何在SQL server中实现它的模式详细信息。16字节,与以下内容完全相同:SQL server中的GUID是什么数据类型?,sql,sql-server,primary-key,guid,Sql,Sql Server,Primary Key,Guid,SQL(特别是MS SQL server 2008)如何在内部存储和比较GUID?是数字还是字符串?另外,当使用GUID作为主键时,性能是否会受到很大影响 除了这里提到的集群问题之外: 我认为它应该是128位的数字(如上所述),但我找不到有关如何在SQL server中实现它的模式详细信息。16字节,与以下内容完全相同: 就性能而言,SQL Server中正常的GUID比INT慢 如果计划使用GUID,请使用uniqueidentifier而不是varchar作为数据类型。微软没有提到他们是如
就性能而言,SQL Server中正常的
GUID
比INT
慢
如果计划使用GUID
,请使用uniqueidentifier
而不是varchar
作为数据类型。微软没有提到他们是如何实现的,当您使用uniqueidentifier
作为数据类型时,会有一些速度优化
要在不牺牲整数速度的情况下使用GUID
作为主键,请按顺序设置GUID
值。将uniqueidentifier
数据类型定义为PK,将默认值设置为NEWSEQUENTIALID()
有关更多详细信息,请参阅
关于顺序GUID
值如何帮助性能,请参阅。您也可以使用nvarchar(128)
下一个最佳选项是二进制(16)列:
标准guid的长度正好是16个字节。
如果必须将其存储为字符串,那么长度实际上取决于您选择如何对其进行编码。由于十六进制(又名base-16编码)没有连字符,它将是32个字符(每个字节两个十六进制数字)。谢谢,不知何故我错过了。
typedef struct _GUID {
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} GUID;