为了账号安全,请及时绑定邮箱和手机立即绑定

什么是涵盖指数?

什么是涵盖指数?

白板的微信 2019-11-30 10:20:39
我刚刚在一些数据库讨论中听到了术语“涵盖索引”-这是什么意思?
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

一个覆盖索引是一个包含所有的,甚至更多的指标,您需要为您查询列。


例如,这:


SELECT *

FROM tablename

WHERE criteria

通常将使用索引来加快使用条件检索哪些行的分辨率,但随后它将转到完整表以检索行。


但是,如果索引包含column1,column2和column3列,则此sql:


SELECT column1, column2

FROM tablename

WHERE criteria

并且,如果可以使用特定的索引来加快要检索的行的解析度,则该索引已经包含了您感兴趣的列的值,因此不必去表中检索行,但可以直接从索引产生结果。


如果您看到典型的查询使用1-2列来解析哪些行,然后通常添加另外1-2列,则也可以使用此方法,最好追加这些额外的列(如果它们在整个过程中都是相同的)添加到索引,以便查询处理器可以从索引本身获取所有内容。


查看完整回答
反对 回复 2019-11-30
?
手掌心

TA贡献1942条经验 获得超3个赞

覆盖指数只是普通指数。如果它可以满足查询而无需分析数据,则称为“覆盖”。


例:


CREATE TABLE MyTable

(

  ID INT IDENTITY PRIMARY KEY, 

  Foo INT


CREATE NONCLUSTERED INDEX index1 ON MyTable(ID, Foo)


SELECT ID, Foo FROM MyTable -- All requested data are covered by index

这是从SQL Server检索数据的最快方法之一。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 505 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信