在MS SQL的PK中,sequental uniqueidentifier的目的是什么?

Rin*_*lin 2 sql database guid uniqueidentifier

我知道基于Guids的主键不具有最佳性能(由于碎片),但它们是全局唯一的并且允许复制方案.

另一方面,整体标识符以可扩展性为代价具有更高的性能.

但在某些情况下,有人想要使用顺序uniqueidentifier作为主键吗?我认为,它胜过了GUID的目的,但我仍然偶尔会看到提及的后遗症.

我在这里想念什么?

Mik*_*ike 6

SQL Server 2005中通常称为顺序guid(由NEWSEQUENTIALID()生成)是尝试克服普通guid的问题.

他们仍然普遍独一无二的,但也一直在上升.这意味着它们可以用于复制,并且具有比传统GUID更好的插入性能.

一个缺点是它们不是"安全的",因为它可以猜测下一个连续的guid.

http://msdn.microsoft.com/en-us/library/ms189786.aspx

  • 只是一个小点.它们几乎肯定是普遍存在的.它们在特定计算机上是唯一的.如果一台机器没有网卡,它们就会变得非唯一(尽管这种情况对于SQL Server来说是不太可能的). (2认同)