【发布时间】:2013-12-14 16:39:23
【问题描述】:
我有一个显示所有最新帖子的屏幕,当用户单击阅读更多链接时,我会根据帖子 ID 带来下一组(其中 id
我有一个聚集索引在 Posts 表上的字段 Id 上升序。
我想知道我是否总是首先显示最新帖子,创建聚集索引降序不是更好吗?
谢谢
【问题讨论】:
-
尝试性能测试
我有一个显示所有最新帖子的屏幕,当用户单击阅读更多链接时,我会根据帖子 ID 带来下一组(其中 id
我有一个聚集索引在 Posts 表上的字段 Id 上升序。
我想知道我是否总是首先显示最新帖子,创建聚集索引降序不是更好吗?
谢谢
【问题讨论】:
在这种情况下没关系。 SQL Server 可以使用升序索引并向后扫描。扫描方向在 Clustered Index Seek 运算符的属性中可见。
样本数据:
create table T
(
ID int identity,
constraint PK_T_ID primary key clustered (ID asc)
)
go
insert into T default values
go 10
查询:
select top(3) *
from T
where ID < 7
order by ID desc
查询计划:
选择聚簇索引扫描操作符并按 F4 查看属性。
【讨论】:
ORDER BY A DESC, B ASC 进行排序,那么A ASC, B ASC 上的索引将无济于事。