什么是索引
1在关系数据库中,索引是一种与表有关的数据库结构,它是除了表以外的另一个重要模式对象。
2索引建立在表的一列或多列上的辅助对象,目的是提高表中数据的访问速度.
3索引是表示数据的另一种方式,它提供的数据顺序不同于数据在磁盘上的物理存储顺序。
4索引的特殊作用是在表内重新排列记录的物理位置
5建立索引需要消耗空间大小为表的1.2倍
索引的类型
B树索引,反向键索引,位图索引,基于函数的索引,簇索引,全局索引,局部索引等.
创建索引
语法:
create unique | btimap index < schema>.< index_name>
on < schema>.< table_name>
(< column_name > | < expression> asc |desc 【,……】)
tablespace< tablespace_name>
storage< storage_settings>
logging | nologging
compute statistics
nocompress | compress< nn>
nosort | reverse
partition |global partition< partition_setting>;
unique :表示创建的表中的每一行在索引中 都是具有唯一值,也就是创建唯一索引
btimap :创建一个位图索引。
如果不指定unique ,btimap 那么表示创建的索引是B树索引.
< schema>.< index_name>:索引名称
< schema>.< table_name>:指定索引基于哪个用户模式下的哪个表
column_name :指定表中的列,可以多个列,逗号分隔,可以指定列的排列方式,默认asc。
tablespace< tablespace_name>:指定存储表空间 tablespace_name
storage< storage_settings>:表示用户可以对存储在表空间的存储参数进行设置,如果不指定该字句,那么使用表空间的默认存储参数。
logging | nologging:在创建索引的时候,是否创建相应的日志记录,默认logging.
nologging好处更快完成创建索引的操作,缺点:不会产生重做日志信息。
compute statistics:oracle在创建索引的过程中,直接生成关于索引的统计信息,这样可以避免以后对索引进行分析操作.
nocompress | compress< nn>:该选项是对复合索引而言的,compress在创建索引时候,对重复的索引进行压缩,以节省存储空间。默认是nocompress ,表示不进行任何压缩,因为压缩会影响使用效率。
nosort : 创建索引时候,不进行排序,加快索引创建速度,节省排序空间。
也就是告诉oracle该表中已经存在的数据已经根据column_a排序,你不需要再去给我排序了;如果表中记录是无序的,在使用norsort会有错误信息。
reverse:反转
partition|global partition< partition_setting>;多个服务并行来创建索引。