一尘不染

应始终将主键分配为聚簇索引

sql

我有一个存储员工详细信息的SQLServer表,列ID为GUID类型,而列EmployeeNumber为INT类型。大多数时候,我会在进行联接和选择条件时处理EmployeeNumber。

我的问题是,在将ClusteredIndex分配给EmployeeNumber时,将PrimaryKey分配给ID列是否明智?


阅读 200

收藏
2021-03-17

共1个答案

一尘不染

理想的聚集索引键是:

1.Sequential
2.Selective (no dupes, unique for each record)
3.Narrow
4.Used in Queries

通常,将GUID用作聚集索引键是一个 非常糟糕的主意 ,因为在添加行时会导致很多碎片。

编辑清晰度:

PK和集群密钥确实是独立的概念 。您的PK不必是您的聚集索引键。

根据我的经验,在 实际应用 中,与PK相同的字段应该/将成为您的群集密钥,因为它满足上面列出的相同条件。

2021-03-17