通常,通过设置主键在sql Server Management Studio中创建聚簇索引,但是我最近关于PK<聚类索引(
Meaning of Primary Key to Microsoft SQL Server 2008)表明,不必将PK和聚类索引设置为相等.
那么我们应该如何选择聚类索引呢?让我们举个例子:
创建表客户(ID int,…)
创建表Orders(ID int,CustomerID int)
我们通常会在两个ID列中创建PK / CI,但我考虑在CustomerID中为Orders创建它.那是最好的选择吗?
解决方法
根据索引王后 – 金佰利 – 她在聚集索引中寻找的主要是:
>独特
>狭窄
>静态
如果您也可以保证:
不断增长的格局
那么你就会拥有理想的聚类键!
查看整个blog post here,另一个非常有趣的一个关于集群关键影响表操作这里:The Clustered Index Debate Continues.
任何像INT(特别是INT IDENTITY)或者INT或DATETIME都是理想的选择.由于其他原因,GUID根本不是很好的候选人,所以您可能会有一个GUID作为您的PK,但是不要将表集中在其上 – 它将被分解,超出认可,性能将受到影响.