我刚刚在一些数据库讨论中听到了术语“涵盖索引”-这是什么意思?
问题来源于stack overflow
一个覆盖索引是一个包含所有的,甚至更多的指标,您需要为您查询列。
例如,这:
SELECT * FROM tablename WHERE criteria 通常将使用索引来加快使用条件检索哪些行的分辨率,但随后它将转到完整表以检索行。
但是,如果索引包含column1,column2和column3列,则此sql:
SELECT column1, column2 FROM tablename WHERE criteria 并且,如果可以使用特定的索引来加快要检索的行的解析度,则该索引已经包含了您感兴趣的列的值,因此不必去表中检索行,但可以直接从索引产生结果。
如果您看到典型的查询使用1-2列来解析哪些行,然后通常添加另外1-2列,则也可以使用此方法,最好追加这些额外的列(如果它们在整个过程中都是相同的)添加到索引,以便查询处理器可以从索引本身获取所有内容。
这是一篇文章:索引覆盖可提高该主题上的SQL Server查询性能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。