首页 > 编程知识 正文

主键是聚集索引吗,为什么只能有一个聚集索引

时间:2023-05-04 22:37:50 阅读:171044 作者:1224

在解释聚集索引和非聚集索引之间的差异之前,我们先看一下如何使用sql语句创建聚集索引和非聚集索引。

createnonclusteredindexinx _ indexonteacheinfo (tno,Tname,Tsex,Tage )--创建非聚集索引

createclusteredindexcharge _ noon charge (charge _ no )--创建聚集索引

聚集索引确定数据在表中的物理顺序。 聚合索引类似于电话簿,后者按姓排列数据。 因为聚集索引定义表中数据的物理存储顺序,所以一个表只能包含一个聚集索引。 但是,此索引可以包含多个列(组合索引),就像电话簿按姓和名组织一样。 聚合索引对于经常查找范围值的列特别有用。 使用聚合索引找到包含第一个值的行后,可以确保包含后续索引值的行在物理上是相邻的。 例如,如果APP应用执行的查询经常检索特定日期范围内的记录,则聚集索引允许您快速查找包含开始日期的行,并检索表中的所有相邻行,直到到达结束日期。 这有助于提高此类查询的性能。 同样,如果在对从表中检索到的数据进行排序时经常使用列,则可以通过将表聚合(物理排序)到该列中,以便不在每次查询该列时对其进行排序来节省成本。 如果索引值是唯一的,则使用聚合索引查找特定行也很有效率。 例如,使用唯一的员工ID列emp_id查找特定员工的最快方法是在emp_id列中创建聚合索引或主关键字约束。

非聚合索引是逻辑顺序与磁盘链接的物理存储顺序不同的索引。 基础表中的数据行不会按聚集键以外的顺序排序和保存。 非聚合索引的叶由索引页而不是数据页组成。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。