clustered和non-clustered index之间有什么区别
发布于 2008-09-18 11:20:23
聚集索引
中
非聚集索引
对于每个表,可以多次使用
更快
当选择包含使用索引的字段的数据时,这两种类型的索引都会提高性能,但会降低更新和插入操作的速度。
由于insert和update速度较慢,聚集索引应该设置在通常是递增的ie或时间戳的字段上。
SQL Server通常仅在选择性高于95%时才使用索引。
发布于 2008-09-18 11:24:11
聚集索引对磁盘上的数据进行物理排序。这意味着索引不需要额外的数据,但只能有一个聚集索引(显然)。使用聚集索引访问数据是最快的。
所有其他索引必须是非聚集的。非聚集索引具有索引列中数据的副本,这些数据与指向实际数据行的指针(如果有聚集索引,则指向聚集索引)保持有序。这意味着通过非聚集索引访问数据必须经过额外的间接层。但是,如果只选择索引列中可用的数据,则可以直接从复制的索引数据中获取数据(这就是为什么最好只选择需要的列,而不使用*)
发布于 2008-09-18 11:19:09
聚集索引以物理方式存储在表中。这意味着它们是最快的,并且每个表只能有一个聚集索引。
非聚集索引是单独存储的,您可以拥有任意多的索引。
最好的选择是在最常用的唯一列(通常是PK )上设置聚集索引。您的表中应该始终有一个选择良好的聚集索引,除非出现一个非常令人信服的原因--想不到一个聚集索引,但是嘿,它可能就在那里--因为没有这样做。
https://stackoverflow.com/questions/91688
复制相似问题