我正在阅读use-the-index-luke.com,其中详细说明了索引的工作方式。该人员再次重申的一件事是,索引的顺序非常重要,为了使查询快速,where子句列应与索引中的列相同。今天,我只是证实了这一理论,并在SQL Server 2008上创建了一个表(id int,名称nvarchar(100))。我在其中插入了约5000行并创建了一个索引
create index abc on test (name, id )
并触发了查询
select ID, name
from test
where ID = 10
and name = '10'
我原本希望在查询计划中进行全表扫描,然后再进行选择,但令我惊讶的是,计划的输出是选择所跟随的索引扫描。
因此,我的问题是Where子句中的列顺序很重要还是SQL Server根据索引定义重新排列了它们?
谢谢 !!