只对索引做一个简单的介绍
概念
索引是数据库中用于存放表中每一条记录的位置的一种对象,主要用于加快对于表的查询操作。
在创建索引时,oracle首先对要建立索引的字段进行排序。然后将排序好的字段值和对应记录的ROWID存储在索引中,此时程索引字段和ROWID的组合为索引条目。
索引创建之后,先在索引中对字段进行快速搜索(因为字段经过排序,所以速度很快)。找到符合条件的字段的ROWID,再根据ROWID到表中找到相应的记录。
再ORACLE中,可以创建多种类型的索引,常见的索引类型由B树索引、位图索引、簇索引、散列簇索引、反序索引和位图连接索引。
基数:某个字段u你可能拥有的不重复值的个数,位图索引适用于基数小的字段,B树索引适用于高基数的字段,尤其是具有primary key约束和unique约束的
索引可以自动创建,也可以手动创建,如果在表的一个字段或者几个字段上建立了主键约束或者唯一约束,那么数据库的服务器将自动在这些字段上建立唯一索引,这时索引的名字和约束的名字相同。
创建索引
1.创建B树索引
B树索引是oracle最常见的一种索引,使用create index语句默认创建B树索引
B树使用平衡的m路搜索树算法,即B树算法,来创建索引,在B树的叶子节点上存储了索引字段的值和ROWID
create index ename_index
on emp (ename);
2.创建位图索引
位图索引不存储ROWID值,也不存储键值,一般在包含少量不同值的字段上创建。
create bitmap index deptno_inex
on emp(deptno);