在旧数据库(SQL Server 2000)中,我们有一个聚集索引,如下所示:
CREATE CLUSTERED INDEX [IX_usr] ON [dbo].[usr]
(
[uid] ASC,
[ssn] ASC,
[lname] ASC
)
据我所知,这些字段在WHERE子句中没有一起使用。也没有任何理由将它们中的任何一个一起使用。有没有理由拥有像这样的聚集索引?
答案 0 :(得分:1)
我能想到的一个原因是,如果你在许多select语句中使用那些字段(不一定在where子句中),它可以作为覆盖索引。
例如,如果您有很多这样的查询:
SELECT uid, ssn, lname FROM usr WHER uid = x
由于所有必填字段都在索引中,查询实际上永远不必点击表。