【发布时间】:2020-08-24 01:26:27
【问题描述】:
在遗留代码中我发现了一个索引如下:
CREATE CLUSTERED INDEX ix_MyTable_foo ON MyTable
(
id ASC,
name ASC
)
如果我理解正确,此索引对于单独查询列 id 或 id 和 name 很有用。我说的对吗?
因此,这样做可能会改善对记录的检索:
select someColumn from MyTable where id = 4
但它不会对这个查询做任何事情:
select someColumn from MyTable where name = 'test'
【问题讨论】:
-
是的,你的理解是绝对正确的——任何多列索引只有在你查询 (n) 最左边的列时才有用——在你的情况下, 单独在
id上,或者在id和name上 - 但不是单独在name上。
标签: sql sql-server indices