Sql server 在SQL Server中的多对多关系中使用顺序GUID

Sql server 在SQL Server中的多对多关系中使用顺序GUID,sql-server,database-design,primary-key,entity-framework-6.1,newsequentialid,Sql Server,Database Design,Primary Key,Entity Framework 6.1,Newsequentialid,基于这个问题,IMHO如果您使用顺序GUID作为PK和非聚集索引,并使用INT或BIG INT标识作为聚集索引,并且考虑到应用程序以后可能需要复制,这将是有益的,并且不会在表扫描、内部联接和插入中损失太多性能 但是,五月与许多人的关系又如何呢?我们是否也应该为它们的网桥表使用不同的INT或BIGINT聚集索引,以获得与使用BIGINT FKs的网桥表相同的性能?我做了一些负载测试,我认为BIGINT是从具有许多联接的大表中查询数据的最佳选择 结论: 每张桌子里有两把钥匙。IDbigint和ext

基于这个问题,IMHO如果您使用顺序GUID作为PK和非聚集索引,并使用INT或BIG INT标识作为聚集索引,并且考虑到应用程序以后可能需要复制,这将是有益的,并且不会在表扫描、内部联接和插入中损失太多性能


但是,五月与许多人的关系又如何呢?我们是否也应该为它们的网桥表使用不同的INT或BIGINT聚集索引,以获得与使用BIGINT FKs的网桥表相同的性能?

我做了一些负载测试,我认为BIGINT是从具有许多联接的大表中查询数据的最佳选择

结论:

每张桌子里有两把钥匙。IDbigint和extIDguid。extID仅用于服务器之间的交换。ID是PK,每个表都有PK的聚集索引