我见过各种指向使用以下模式的文章:
ID
(uniqueidentifier
):PK,非群集ClusteredID
(int
):INDEX,clustered(IDENTITY)我对这种模式的解释是,它允许使用uniqueidentifier
来识别记录(这在许多情况下很有用),但这意味着聚集索引不会因为增量排序而变得如此分散。生成int identity
列值。
到目前为止,这一切对我都有意义。
我不完全理解的是:
如果唯一标识符是uniqueidentifier
,那么我将其用作相关表中的FK是有意义的。现在,当执行加入两个表SQL Server
的select语句时,将在uniqueidentifiers
上执行连接。但是,看到它实际上是聚集的int索引,那么我认为对int的聚类不会有助于连接的性能。
如果我的上述假设是正确的,那么我不会意识到添加聚集的int索引的好处。
因此,我猜我的假设是不正确的。有人能告诉我,我的思路在哪里出错吗?