为何 order 排序不同效率相差 10 倍??

zzmsl 2006-08-17 11:54:29
ID int类型 主键 聚集索引(唯一值)
PostTime datetime类型 非聚集索引(非唯一,但测试的时候值都不同的)

select top 1000000 @xxx = xxx from table order by ID

select top 1000000 @xxx = xxx from table order by PostTime

下面一句所花费的时间多了 10 倍!!!
...全文
218 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
巴拉莱卡 2006-08-18
  • 打赏
  • 举报
回复
你自己也说+索引了
lindawu1105 2006-08-18
  • 打赏
  • 举报
回复
CLUSTERED Index 下的排序最快~
tdtjjiao 2006-08-18
  • 打赏
  • 举报
回复
还有查询数字肯定比日期要快了。
kalakala 2006-08-18
  • 打赏
  • 举报
回复
是啊,索引。
wallsshi 2006-08-18
  • 打赏
  • 举报
回复
字段类型不同,数据长度也就不同,int是4位,datetime是8位,比较所用时间也就不同。

让你比较ABCD、ABCE

再比较ABCDEFGH、ABCDEFGI

得到结论,哪个花得时间多一些?
fxf66 2006-08-18
  • 打赏
  • 举报
回复
一个表只能有一个聚集索引
聚集索引的顺序和记录的物理存放顺序相同,所以是最快的
非聚集索引索引,查询的是索引树,得到结果后还要进行一次转换才是记录的真正物理地址

讲不太清楚,自己看看书吧

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧