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

另一方面,集成标识符以可扩展性为代价具有更高的性能。

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

我在这里想念什么?

有帮助吗?

解决方案

SQL Server 2005中通常所说的连续guid(由NEWSEQUENTIALID()生成)是尝试克服普通guid的问题。

他们 仍然是普遍独特的,但也总是在提升。这意味着它们可用于复制具有比传统GUID更好的插入性能。

一个缺点是它们不是“安全的”。因为可以猜出下一个连续的guid。

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

其他提示

使用顺序guid可确保始终使用大于上一个值的值。对于索引字段,这很重要。您不必在整个频谱中随机插入,而是始终在最后一个“页面”的末尾插入。数据,导致页面拆分大幅减少,特别是在您的uniqueidentifier列也是您的聚集索引的情况下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top