+ -
当前位置:首页 → 问答吧 → 求组!关于索引的一个问题

求组!关于索引的一个问题

时间:2011-11-03

来源:互联网



create index ID_INDEX ON BILLS(ACCOUNT_ID)

建立索引之后为什么我再查询BILLS表不能得重新进行排序??

求各位大侠能给我讲解一下吗?

作者: badnviw1983   发布时间: 2011-11-03

引用楼主 badnviw1983 的回复:
create index ID_INDEX ON BILLS(ACCOUNT_ID)

建立索引之后为什么我再查询BILLS表不能得重新进行排序??

求各位大侠能给我讲解一下吗?


查看执行计划

作者: roy_88   发布时间: 2011-11-03

排序是根据你的order by子句来的,建索引的目的是为了加快查找,两回事吧.

作者: qianjin036a   发布时间: 2011-11-04

from 表名 order by 排序列名

作者: qianjin036a   发布时间: 2011-11-04

引用楼主 badnviw1983 的回复:
create index ID_INDEX ON BILLS(ACCOUNT_ID)

建立索引之后为什么我再查询BILLS表不能得重新进行排序??

求各位大侠能给我讲解一下吗?


建立索引之后为什么我再查询BILLS表不能得重新进行排序??
这句话什么意思?
看来我的语文真没学好啊

作者: koumingjie   发布时间: 2011-11-04

引用 2 楼 qianjin036a 的回复:
排序是根据你的order by子句来的,建索引的目的是为了加快查找,两回事吧.

確實是兩回事,樓主要把問題表達清楚。

作者: Tosp2012   发布时间: 2011-11-04

你建立得如果是非聚集索引 是按照逻辑排序的

聚集索引 按照物理地址排序

都还需要ORDER BY

作者: fredrickhu   发布时间: 2011-11-04

引用楼主 badnviw1983 的回复:
create index ID_INDEX ON BILLS(ACCOUNT_ID)

建立索引之后为什么我再查询BILLS表不能得重新进行排序??

求各位大侠能给我讲解一下吗?

建立索引以后,即使索引能覆盖排序的列,也不一定会按照索引来组织输出的数据。当建立的是聚集索引的时候,有效。要明确输出数据的顺序,需要使用order by

作者: HEROWANG   发布时间: 2011-11-04

建立索引说白了就是给数据加了一个特殊的目录。你显示的时候,想要什么样的排序还是要用order by 来看的。

作者: chenguang79   发布时间: 2011-11-04

仅供参考:
ORDER BY子句:只有当ORDER BY后面的第一个排序列在聚集索引上时,SQL才使用聚集索引完成表扫描并排序,否则只使用聚集索引完成表扫描。
不使用ORDER BY子句:如果没有索引,则SQL使用表扫描:如果有聚集索引或者非聚集索引,除非使用WITH(INDEX(索引名)),否则SQL还是使用表扫描。

作者: gogodiy   发布时间: 2011-11-04

大概了解了。谢谢各位大侠指点。

作者: badnviw1983   发布时间: 2011-11-05

SQL code
CREATE CLUSTERED INDEX id_index ON demo.student(id)

建立聚集索引

作者: public0011   发布时间: 2011-11-05