繁体   English   中英

SQL Server中的复合聚簇索引

[英]Composite Clustered Index in SQL Server

我有一个表IDENTITY列作为主键(经典ID列)。

SQL Server自动为该主键创建聚簇索引。

我的问题是:

  • 我可以只有一个具有更多列的CLUSTERED INDEX复合材料吗?

如果是,我如何删除默认聚簇索引并重新创建具有此属性的新索引。

感谢您的支持

是的,每个表只能有一个聚簇索引 - 数据是由该索引物理排列的,因此您不能有多个索引。

但是,我不建议使用复合聚簇索引。 为什么? 因为聚集索引应始终为:

  • 尽可能小--4字节的INT是完美的
  • 稳定 - 永远不会改变,所以你没有通过所有索引进行波纹更新
  • 唯一的 - 否则,SQL Server必须使用人工的4字节值“统一”您的条目
  • 最佳的将是:不断增加

INT IDENTITY非常适合作为聚簇索引 - 我建议你保持这种方式。

聚集索引列(或列集)也会添加到同一个表上每个非聚簇索引的每个条目中 - 因此,如果使聚簇索引大,20,50个字节或更多,则会开始浪费大量空间 - 在磁盘上和服务器的内存中,这通常会降低系统性能。

阅读所有关于聚集索引的内容以及它们应该是什么样的好聚簇索引:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM