1.1:创建索引的语法
CREATE UNIUQE|BITMAP INDEX
ON
(
TABLESPACE
STORAGE
PCTFREE 0
LOGGING|NOLOGGING
COMPUTE STATISTICS
NOCOMPRESS|COMPRESS
NOSORT|REVERSE
PARITION|GLOBAL PARTITTION
相关说明:
1) UNIQUE | BITMAP:指定UNIQUE为唯一值索引,BITMAP为位图索引,省略为B-Tree索引;
2)
3)TABLESPACE:指定存放索引的表空间(索引和原表不在一个表空间时效率更高);
4)STORAGE:可进一步设置表空间的存储参数;
5)LOGGING | NOLOGGING:是否对索引产生重做日志(对大表尽量使用NOLOGGING来减少占用空间并提高效率);
6)COMPUTE STATISTICS:创建新索引时收集统计信息;
7)NOCOMPRESS | COMPRESS
8)NOSORT | REVERSE:NOSORT表示与表中相同的顺序创建索引,REVERSE表示相反顺序存储索引值;
9)PARTITION | NOPARTITION:可以在分区表和未分区表上对创建的索引进行分区。
创建索引时应遵循的策略:
1)导入数据库后再创建索引;
2)不需要为很小的表创建索引;
3)对于取值范围很小的字段(比如性别字段)应当建立位图索引;
4)限制表中的索引数目;
5)为索引设置合适的PCTFREE值;
6)存储索引的表空间最好单独设定。
1.2:索引特点
a、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;
b、可以大大加快数据的检索速度,这也是创建索引的最主要的原因;
c、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义;
d、在使用分组和排序子句中进行数据检索时,同样可以显著减少查询者分组和排序的时间;
e、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
1.3:索引的不足
a、创建索引和维护索引要消耗时间,这种时间随着数据量的增加而增加;
b、索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间;
c、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,正阳就降低了数据的维护速度。
1.4:应该建索引的特点
a、在经常需要搜索的列上,可以加快搜索的速度;
b、在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
c、在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
d、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
e、在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
f、在经常使用在where子句中的列上创建索引,加快条件的判断速度。
1.5:索引的分类
B树索引 (B-Tree index)
基于函数的索引(function based index)
反转索引 (reverse key index)
位图索引 (bitmap index)
位图连接索引 (bitmap join index)
分区索引 (partitioned index)
索引组织表索引(index organized index)
HASH索引 (hash index)
1.6:索引限制
即使相关字段上有索引,在如下4种情况,也不会走索引
a、使用不等于操作符(<>,!=);
b、使用is null或is not null;
c、使用函数;
d、比较不匹配的数据类型;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26486119/viewspace-712165/ ,如需转载,请注明出处,否则将追究法律责任。