16
2020
11

怎样创建一个一个索引,索引使用的原则,有什么优点和缺点

创建标准索引: 

CREATE  INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名; 

创建唯一索引: 

CREATE unique INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名; 

创建组合索引: 

CREATE INDEX 索引名 ON 表名 (列名1,列名2)  TABLESPACE 表空间名; 

创建反向键索引: 

CREATE INDEX 索引名 ON 表名 (列名) reverse TABLESPACE 表空间名; 

索引使用原则: 

索引字段建议建立NOT NULL约束 

经常与其他表进行连接的表,在连接字段上应该建立索引; 

经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 

可选择性高的关键字 ,应该建立索引; 

可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率 

复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 

A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上; 

B、复合索引的几个字段经常同时以AND方式出现在Where子句中可以建立复合索引;否则单字段索引; 

C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; 

D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; 

E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 

频繁DML的表,不要建立太多的索引; 

不要将那些频繁修改的列作为索引列; 

索引的优缺点: 

有点: 

1. 创建唯一性索引,保证数据库表中每一行数据的唯一性 

2. 大大加快数据的检索速度,这也是创建索引的最主要的原因 

3. 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 

缺点: 

1. 索引创建在表上,不能创建在视图上 

2. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 

3. 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 

4. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度 

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。