Jam*_*een 24 sql database sql-server primary-key
我们有一个使用UniqueIdentifier作为每个表的主键的系统.我们注意到这是一个坏主意.我已经看过关于这个主题的类似帖子,但我对任何MS SQL性能以及由于这个决定我可能遇到的其他潜在问题感兴趣.
Chr*_*aft 25
有利有弊:
本文涵盖了一切.
GUID优点
GUID缺点
SQL*_*ace 17
我上周写了一篇关于这个的文章,其中有一些代码可以告诉你会发生什么:一些简单的代码来显示Newid和Newsequentialid之间的区别
基本上,如果您使用newid()而不是Newsequentialid(),如果您的PK是聚簇索引(默认情况下将是这样),您会得到可怕的页面拆分
Bra*_*don 16
就个人而言,我会使用一个int或bigint作为PK,但只需在另一个"Guid"列中输入那些你需要一个不可饶恕的"键"来记录该记录的情况,并在插入行时生成Guid.
如果您需要对大型集合(假设是第 100,000 个)进行连接,那将会很糟糕。去过那里,受苦了。
后来编辑:我还遇到了一个更糟糕的问题(不能称之为“方法”):将 GUID 存储在 char(36) 列中!!