1

我正在研究一个数据库系统和它的索引,但是我很难看到覆盖索引和聚集索引之间的明显区别。

我已经用谷歌搜索了我的方式,但没有得到明确的答案:

  1. 两种索引有什么区别
  2. 什么时候使用覆盖索引,什么时候使用聚集索引。

我希望有人可以用几乎像孩子一样的回答向我解释:-)

真诚的梅斯蒂卡

顺便说一句,我使用的是 IBM DB2 9.7 版

4

1 回答 1

3

我无法与 DB2 交谈,但以下内容适用于 SQL Server。

当所有必需的列都是索引的一部分时,该索引称为“覆盖索引”。SQL Server 2005 引入了这种类型的索引,允许您在索引中包含“包含的列”。这允许您在索引中包含超过 16 列限制的其他列或太大而无法包含的列。

虽然每个表只能有一个聚集索引,但每个表最多可以有 249 个非聚集索引。

通过使用覆盖索引来满足查询,SQL Server 不需要返回聚集索引来检索查询所需的其余数据。

兰迪

于 2010-05-13T17:18:07.243 回答