基于“什么是使用 GUID 作为主键的最佳实践,特别是关于性能? ”问题,恕我直言,如果您使用顺序 GUID 作为具有非聚集索引的 PK 并使用INT
orBIG INT IDENTITY
作为聚集索引并考虑到应用程序可能稍后需要复制,这将是有益的,并且不会在表扫描、内部连接和插入中损失太多性能。
但是可能对许多关系呢?我们是否还应该为其桥接表使用不同的(INT
或BIGINT
)聚集索引来获得与带有 FK 的桥接表相同的性能BIGINT
?
基于“什么是使用 GUID 作为主键的最佳实践,特别是关于性能? ”问题,恕我直言,如果您使用顺序 GUID 作为具有非聚集索引的 PK 并使用INT
orBIG INT IDENTITY
作为聚集索引并考虑到应用程序可能稍后需要复制,这将是有益的,并且不会在表扫描、内部连接和插入中损失太多性能。
但是可能对许多关系呢?我们是否还应该为其桥接表使用不同的(INT
或BIGINT
)聚集索引来获得与带有 FK 的桥接表相同的性能BIGINT
?
I did some load tests and I see bigint is best choice for queriying data from big tables with many joins and so on.
conclusion:
I have two key in each table. ID(bigint) and extID(guid). extID is used only for exchange between servers. ID is PK and there are clustered index for PK for each table.