首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >聚集索引和非聚集索引有什么区别?

聚集索引和非聚集索引有什么区别?
EN

Stack Overflow用户
提问于 2008-09-18 11:14:23
回答 13查看 292.4K关注 0票数 302

clusterednon-clustered index之间有什么区别

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2008-09-18 11:20:23

聚集索引

  • 每个表只有一个
  • 读取速度比非集群快,因为数据实际存储在索引顺序

非聚集索引

对于每个表,可以多次使用

  • 进行插入和更新操作,比使用聚集索引

更快

当选择包含使用索引的字段的数据时,这两种类型的索引都会提高性能,但会降低更新和插入操作的速度。

由于insert和update速度较慢,聚集索引应该设置在通常是递增的ie或时间戳的字段上。

SQL Server通常仅在选择性高于95%时才使用索引。

票数 284
EN

Stack Overflow用户

发布于 2008-09-18 11:24:11

聚集索引对磁盘上的数据进行物理排序。这意味着索引不需要额外的数据,但只能有一个聚集索引(显然)。使用聚集索引访问数据是最快的。

所有其他索引必须是非聚集的。非聚集索引具有索引列中数据的副本,这些数据与指向实际数据行的指针(如果有聚集索引,则指向聚集索引)保持有序。这意味着通过非聚集索引访问数据必须经过额外的间接层。但是,如果只选择索引列中可用的数据,则可以直接从复制的索引数据中获取数据(这就是为什么最好只选择需要的列,而不使用*)

票数 86
EN

Stack Overflow用户

发布于 2008-09-18 11:19:09

聚集索引以物理方式存储在表中。这意味着它们是最快的,并且每个表只能有一个聚集索引。

非聚集索引是单独存储的,您可以拥有任意多的索引。

最好的选择是在最常用的唯一列(通常是PK )上设置聚集索引。您的表中应该始终有一个选择良好的聚集索引,除非出现一个非常令人信服的原因--想不到一个聚集索引,但是嘿,它可能就在那里--因为没有这样做。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/91688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档