【问题标题】:Covering Index versus Clustered Index (Database Index)覆盖索引与聚集索引(数据库索引)
【发布时间】:2011-02-19 04:41:58
【问题描述】:
我正在研究数据库系统和它的索引,但我很难看出覆盖索引和聚集索引之间的明显区别。
我已经用谷歌搜索了我的方式,但没有得到明确的答案:
- 这两种索引有什么区别
- 什么时候使用覆盖索引,什么时候使用聚集索引。
我希望有人可以用几乎像孩子一样的答案向我解释:-)
真诚的梅斯蒂卡
顺便说一下,我使用的是 IBM DB2 9.7 版
【问题讨论】:
标签:
database
indexing
db2
clustered-index
covering-index
【解决方案1】:
我无法与 DB2 交谈,但以下内容适用于 SQL Server。
当所有必需的列都是索引的一部分时,该索引称为“覆盖索引”。 SQL Server 2005 引入了这种类型的索引,允许您在索引中包含“包含的列”。这使您可以在索引中包含超过 16 列限制的其他列或太大而无法包含的列。
虽然每个表只能有一个聚集索引,但每个表最多可以有 249 个非聚集索引。
通过使用覆盖索引来满足查询,SQL Server 无需返回聚集索引来检索查询所需的其余数据。
兰迪