为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何使用create index语句创建索引?

请问该如何使用create index语句创建索引?

跃然一笑 2019-07-09 10:06:35
如何使用create index语句创建索引
查看完整描述

4 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

索引是以表列为基础的数据库对象,索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。
通过索引,可以加快数据的查询速度和减少系统的响应时间;
可以使表和表之间的连接速度加快。
用SQL建立索引:
为了给一个表建立索引,启动任务栏SQL Sever程序组中的ISQL/w程序。进入查询窗口后,输入下面的语句:
CREATE [UNIQUE] [CLUSER] INDEX <索引名> ON <表名> (<列名>);
UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录
CLUSTER 表明要建立的是聚簇索引(指索引项的顺序与表中记录的物理顺序一致)
例:CREATE CLUSER INDEX Stuname ON Student(Sname);
在student表的sname列建立一个聚簇索引,student中记录按照sname值的升序排列.

查看完整回答
反对 回复 2019-07-13
?
慕少森

TA贡献2019条经验 获得超9个赞

CREATE INDEX 实例

本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:

CREATE INDEX PersonIndex
ON Person (LastName)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX PersonIndex
ON Person (LastName DESC)

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PersonIndex
ON Person (LastName, FirstName)

查看完整回答
反对 回复 2019-07-13
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

如果你查询的字段都在索引中,那么可以只查询索引,不用查询表,就可以输出数据。
这是建索引时的一种考虑。
但是在你这种情况下不适用。
我猜你是想输出大批数据,而不是根据索引选择有数的那么几条。
输出数据占总数据量达到一定比例以后,再用索引就是浪费更多资源而得不到回报了。
因为数据行存储在块中。一块存多行。用索引时是根据索引信息,每一行访问一次数据块。
数据多了会覆盖大多数数据块,并且一个数据块会被访问多次。就不如全表扫描一次,访问一个数据块就把该块所有行都输出。这样效率最高。
所以你这种情况不应该用索引的。

 


查看完整回答
反对 回复 2019-07-13
  • 4 回答
  • 0 关注
  • 2000 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信