sql server中的id,date或date,id索引之间是否有区别?

Tig*_*ran 3 sql-server indexing

我正在sql server 2005中创建一个索引,并且与同事的讨论是,它是否在索引键列之间有区别,即id和date vs date然后id.

在任一场景中创建索引的方式是否存在根本差异?

它会在其他版本的SQL服务器上有所作为吗?

谢谢

Cly*_*yde 8

当然是.有没有人查询表JUST日期或JUST id?日期索引,id可用于查找日期,但不仅仅是id,反之亦然

使用日期,id:

Jan 1     4  
Jan 1     7  
Jan 2     6  
Jan 2     9  
Jan 2     33  
Jan 3     23  
Jan 4     1
Run Code Online (Sandbox Code Playgroud)

使用id,日期:

1     Jan 4  
4     Jan 1  
6     Jan 2  
7     Jan 1  
9     Jan 2  
23    Jan 3  
33    Jan 2 
Run Code Online (Sandbox Code Playgroud)

如果查询中的WHERE子句或JOIN同时使用date和id,那么任何一个索引都可以.但是你可以看到,如果你只按日期进行查找,第一个索引对此有用,但第二个索引是完全随机的.

在更一般的意义上,A,B,C,D上的索引对A,B,C,D或OR,B,C或A,B或A上的查询都有用.