Database 数据库索引是否反向工作?

Database 数据库索引是否反向工作?,database,sql-server-2008,indexing,Database,Sql Server 2008,Indexing,给出一个数据库表示例: ID Name DateOfBirth 假设我想创建一个关于出生日期的索引,我可以添加出生日期升序的索引。如果我的代码现在查询DOB升序,它将运行得又快又好 然而,数据库是否足够智能,可以反向使用索引,即,如果我查询orderby dateof birth descending它是否仍然能够使用该索引,或者我应该专门为降序创建另一个索引页吗?索引页形成一个双链接列表,如下所示,带有指向下一页和上一页的指针 因此,SQLServer可以前后遍历索引。扫描方向 在综合指数

给出一个数据库表示例:

ID
Name
DateOfBirth
假设我想创建一个关于出生日期的索引,我可以添加
出生日期升序的索引。如果我的代码现在查询DOB升序,它将运行得又快又好


然而,数据库是否足够智能,可以反向使用索引,即,如果我查询
orderby dateof birth descending
它是否仍然能够使用该索引,或者我应该专门为降序创建另一个索引页吗?

索引页形成一个双链接列表,如下所示,带有指向下一页和上一页的指针

因此,SQLServer可以前后遍历索引。扫描方向

在综合指数中,
Asc
/
Desc
变得重要

如果将索引定义为
ID ASC、Name ASC、DateOfBirth ASC
,则仍然需要对查询进行排序
例如,按ID ASC、Name DESC、DateOfBirth ASC排序

请注意,您可能拥有比您意识到的更多的复合索引以及非唯一的非聚集索引