索引的建立与删除

建立索引根据是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。

索引的优点和缺点

索引的优点很明显,那就是加快查询速度。

但是索引也有不适宜的情况,原因是建立索引后,更新索引上的数据时会导致表中记录的物理顺序的变更,代价较大,且会占用一定的系统资源,因此对于经常更新的列不宜建立索引。


建议建立索引的情况

  • 主码和外码一般会建立索引
  • 以读为主或只读的表,只要空间允许可以建立多个索引
  • 等值查询,且满足条件的元组数小于总元组数的5%,可以考虑在相关属性上建立索引
  • 范围查询

不宜建立索引的情况

  • 不出现或很少出现查询的属性
  • 属性值很少的属性
  • 属性值分布严重不均的属性
  • 经常更新的属性或表
  • 过长的属性
  • 太小的表

建立索引

建立索引的一般格式为:

create [unique][cluster]index<索引名>
on <表名>(<列名>[<次序>][,<列名>[<次序>]]...);

其中,表名是要建立索引的基本表的名字。索引可以建立在一列或多列上,每个<列名>后面还可以用<次序>指定索引值的排列次序,可选ASC(升序)或DESC(降序),缺省值为ASC。
unique表示此索引的每一个索引值只对应唯一的数据记录。
cluster表示要建立的索引是聚簇索引。所谓聚簇索引是指索引项的数据与表中记录的物理顺序一致的索引组织。
例:在Student表上的姓名列建立一个聚簇索引。

create cluster index Stusname
on Student(Sname);

例:在sc表的Sno(升序), Cno(升序)和grade (降序)三列上建立一个普通索引SCno。

create index SCno
on table SC(Sno,Cno,Grade DESC);

删除索引

删除索引的一般格式为:

drop index<索引名>;

例:删除Student表上的Stusname索引。

drop index Stusname;

猜你喜欢

转载自blog.csdn.net/larry233/article/details/51605494