8.Oracle索引

来源:互联网 发布:is淘宝刷单兼职靠谱吗 编辑:程序博客网 时间:2024/04/28 21:28
什么是索引
 创建索引,可以提高数据的访问速度。

索引分类
 1.B树索引
 2.唯一索引和非唯一索引
 3.反向键索引
 4.位图索引

1.B树索引

如上图可以看出,B树索引的顺序
1.索引会将数据取一个中间点(中间点是数据库自己决定的),小于等于50的在左边,大于50的在右边,这样我们在查找数据的时候,索引会先判断你的数据是大于50或是小于50,从而在决定去左边的区段还是去右边的区段。
2.如果数据大于50则会来到左边的区段,然后继续查找,从而取出数据。
语法:CREATE   INDEX 索引名 ON  表名(列) ;

2.唯一索引和非唯一索引
 唯一索引:定义索引的列种,任何两行都没有重复值。在创建主键和唯一键的时候都会创建唯一索引
 非唯一索引:单个关键字可以有多个与其相关联的行。
 语法:CREATE UNIQUE  INDEX 索引名 ON  表名(列) ;

3.反向键索引
 反向键索引适用于在连续增长的列上。因为这种连续的数值,在创建索引的时候,可能会将数据都放在左边,或者右边,这样就是一头重一头轻了,为了避免这种情况,可以使用反向键索引。
反向键索引就是将数据反向,例如在数据库中有7789,反向后为9877。数据会不会出现冲突,数据库会自己处理。
 语法:CREATE  INDEX 索引名 ON  表名(列)  REVERSE;

4.位图索引
 位图索引有点在于,它最适用于低基数列(该列的值是有限的,不会无穷大),例如工种列。

表中有14条数据,所以显示14,如果有15条则会显示15。
以第一行ANALYST举例说明,在8、10、13行的地方显示1,说明这几行的工种是ANALYST。其他行显示0,说明其他行的工种不为ANALYST。
 语法:CREATE BITMAP INDEX 索引名 ON  表名(列)



删除索引
DROP  INDEX  索引名





0 0