我试图在SQL Server中创建一个ID
列,VB.net会为数据库中创建的每一个新行提供一系列数字。所以我用下面的技术来创建ID列。使用INT或GUID作为主键
select * from T_Users
ALTER TABLE T_Users
ADD User_ID INT NOT NULL IDENTITY(1,1) Primary Key
然后我注册了几个用户名到数据库中,它工作得很好。例如前六行将是1,2,3,4,5,6。然后我在下一天注册了4个用户,但是这次ID号从6跳到了一个非常大的数字,例如:1,2,3,4,5,6,1002,1003,1004,1005。然后两天后,我又注册了两个用户,新行读取了3002,3004个。所以我的问题是为什么我每隔一天跳过如此大量的注册用户。我用来创建序列的技巧是否错误?如果有任何错误,请告诉我如何做到这一点?现在,当我对上面使用的技术感到沮丧时,或者我尝试使用按顺序生成的GUID值。生成的GUID值序列正常。然而,唯一的缺点是,它会产生很长的数字(4倍的INT大小)。我的问题在于使用GUID是否比INT有任何显着的优势?
问候,
诀窍与PK不集群,但东西,而不是群集化确实有一个逻辑顺序 - 例如日期戳,名称或其他。 –
DeanOC,感谢您的反馈。这很有帮助。 –