之间的区别 Clustered 和非聚集索引

之间的主要区别 Cluster聚集索引和非聚集索引

  • 聚簇索引是一种根据键值对表中的数据行进行排序的索引,而非聚簇索引将数据存储在一个位置,将索引存储在另一个位置。
  • Cluster聚集索引将数据页存储在索引的叶子节点中,而非聚集索引方法永远不会将数据页存储在索引的叶子节点中。
  • 聚集索引不需要额外的磁盘空间,而非聚集索引则需要额外的磁盘空间。
  • Cluster 索引提供更快的数据访问,另一方面,非聚集索引较慢。
之间的区别 Cluster聚集索引和非聚集索引
Clustered 与非聚集索引

什么是指数?

索引是由数据库中一个或多个列构建的键,可加快从表或视图中提取行的速度。此键可帮助数据库 Oracle, SQL Server, MySQL等来快速找到与键值相关的行。

两种类型的索引是:

  • Cluster编目索引
  • 非-Cluster编目索引

什么是 Clustered 索引?

Cluster 索引是一种索引类型,它根据表中的数据行的键值对其进行排序。在数据库中,每个表只有一个聚集索引。

聚簇索引定义数据在表中的存储顺序,该顺序只能以一种方式排序。因此,每个表只能有一个聚簇索引。在 RDBMS 中,通常,主键允许您基于该特定列创建聚簇索引。

什么是非聚集索引?

非聚集索引将数据存储在一个位置,将索引存储在另一个位置。索引包含指向该数据位置的指针。单个表可以有多个非聚集索引,因为非聚集索引中的索引存储在不同位置。

例如,一本书可以有多个索引,一个在开头,按单元显示书的内容,而第二个索引按字母顺序显示术语索引。
非聚簇索引是在表的非排序字段中定义的。这种类型的索引方法可帮助您提高使用未指定为主键的键的查询的性能。非聚簇索引允许您为表添加唯一键。

的特征 Cluster编目索引

  • 默认和排序数据存储
  • 仅使用一列或多列作为索引
  • 帮助您将数据和索引存储在一起
  • 碎片
  • 营运部
  • Cluster索引扫描和索引查找
  • 密钥查找

非聚集索引的特征

  • 仅存储键值
  • 指向堆的指针/Clustered 索引行
  • 允许二次数据访问
  • 数据桥梁
  • Opera索引扫描和索引查找
  • 您可以为表或视图创建非聚集索引
  • 非聚集索引中的每个索引行都存储非聚集键值和行定位器

ClusterSQL 中的 ed 与非聚集索引:主要区别

参数 Clustered 非集群
用于 您可以按顺序对记录进行排序,并将聚集索引物理存储在内存中。 非聚集索引可帮助您为数据行创建逻辑顺序并使用指针指向物理数据文件。
储藏方法 允许您将数据页存储在索引的叶节点中。 这种索引方法从不将数据页存储在索引的叶节点中。
尺码 聚集索引的大小相当大。 非聚集索引的大小与聚集索引相比较小。
数据访问 更快 与聚集索引相比速度较慢
额外的磁盘空间 不需要 需要单独存储索引
钥匙类型 默认情况下,表的主键是 Cluster编辑索引。 它可以与表上的唯一约束一起使用,充当复合键。
主要特征 聚集索引可以提高数据检索的性能。 它应该在连接中使用的列上创建。

聚集索引的示例

在下面的示例中,SalesOrderDetailID 是聚集索引。检索数据的示例查询

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

聚集索引的示例

非聚集索引的示例

在以下示例中,在 OrderQty 和 ProductID 上创建了一个非聚集索引,如下所示

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

非聚集索引的示例

与聚集索引相比,以下查询的检索速度更快。

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

非聚集索引的示例

的优点 Cluster编目索引

聚集索引的优点/好处是:

  • Clustered 索引是范围或分组查询(最大、最小、计数类型查询)的理想选择
  • 在这种类型的索引中,搜索可以直接到达数据中的特定点,以便您可以从那里继续按顺序读取。
  • Clustered 索引方法使用定位机制来定位范围开始处的索引条目。
  • 当请求一定范围的搜索键值时,它是一种有效的范围搜索方法。
  • 帮助您最小化页面传输并最大化缓存命中率。

非聚集索引的优点

使用非聚集索引的优点是:

  • 非聚集索引可帮助您从数据库表中快速检索数据。
  • 帮助您避免与聚集索引相关的开销成本
  • 一个表中可能有多个非聚集索引 RDBMS。因此,它可以用来创建多个索引。

缺点 Cluster编目索引

以下是使用聚集索引的缺点/缺点:

  • 大量插入内容不按顺序排列
  • 聚集索引会创建大量的恒定页面分割,其中包括数据页和索引页。
  • 额外工作 SQL 用于插入、更新和删除。
  • 当聚集索引中的字段发生变化时,聚集索引需要更长的时间来更新记录。
  • 叶子节点主要包含聚集索引中的数据页。

非聚集索引的缺点

以下是使用非聚集索引的缺点/缺点:

  • 非聚集索引可帮助您按逻辑顺序存储数据,但不允许对数据行进行物理排序。
  • 非聚集索引上的查找过程变得成本高昂。
  • 每次更新聚类键时,非聚类索引就需要进行相应的更新,因为它存储了聚类键。