gpt4 book ai didi

sql-server-2005 - 索引键列 VS 索引包含列

转载 作者:行者123 更新时间:2023-12-03 05:35:12 24 4
gpt4 key购买 nike

有人可以解释一下这两个 - 索引关键列 VS 索引包含列吗?

目前,我的索引有 4 个索引键列和 0 个包含列,我想知道两者之间的区别。

最佳答案

索引键列是索引 B 树的一部分。不包括列。

取两个索引:

CREATE INDEX index1 ON table1 (col1, col2, col3)
CREATE INDEX index2 ON table1 (col1) INCLUDE (col2, col3)

index1 更适合这种查询:

SELECT * FROM table1 WHERE col1 = x AND col2 = y AND col3 = z

index2 更适合这种查询:

SELECT col2, col3 FROM table1 WHERE col1 = x

在第一个查询中,index1 提供了一种快速识别感兴趣的行的机制。该查询(可能)将作为索引查找执行,然后进行书签查找以检索完整行。

在第二个查询中,index2 充当覆盖索引。 SQL Server 根本不需要访问基表,因为索引提供了满足查询所需的所有数据。在这种情况下,index1 也可以充当覆盖索引。

如果您想要覆盖索引,但不想将所有列添加到 b 树,因为您不查找它们,或者因为它们不是允许的数据类型(例如 XML)而不能查找它们,使用 INCLUDE 子句。

关于sql-server-2005 - 索引键列 VS 索引包含列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com