gpt4 book ai didi

sql - 列以相反顺序定义的 2 个索引之间的差异

转载 作者:行者123 更新时间:2023-12-02 09:02:13 25 4
gpt4 key购买 nike

以下两个指标有什么区别吗?

  • IDX_IndexTables_1
  • IDX_IndexTables_2

如果有的话,有什么区别?

create table IndexTables (
id int identity(1, 1) primary key,
val1 nvarchar(100),
val2 nvarchar(100),
)

create index IDX_IndexTables_1 on IndexTables (val1, val2)
GO

create index IDX_IndexTables_2 on IndexTables (val2, val1)
GO

最佳答案

是的。是有区别的。

复合索引 IDX_IndexTables_1 可用于在 where 子句中使用 val1 列的任何查询。

复合索引 IDX_IndexTables_2 可用于在 where 子句中使用 val2 列的任何查询。

因此,例如 IDX_IndexTables_2 不能用于此查询(但可以使用 IDX_IndexTables_1):

SELECT val1, val2 FROM IndexTables
WHERE val1 = some_value

但可用于此查询:

SELECT val1, val2 FROM IndexTables
WHERE val2 = some_value AND val1 = some_other-value

考虑综合索引的方法就像考虑纸质电话簿;它按姓氏列进行索引,然后按名字列进行索引:您可以按姓氏进行查找,但不能按名字单独进行查找。

关于sql - 列以相反顺序定义的 2 个索引之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549847/

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