什么是索引


 创建索引,可以提高数据的访问速度。



索引分类

 1.B树索引


 2.唯一索引和非唯一索引


 3.反向键索引


 4.位图索引




1.B树索引




大于等于走索引ma_数据



如上图可以看出,B树索引的顺序


1.索引会将数据取一个中间点(中间点是数据库自己决定的),小于等于50的在左边,大于50的在右边,这样我们在查找数据的时候,索引会先判断你的数据是大于50或是小于50,从而在决定去左边的区段还是去右边的区段。


2.如果数据大于50则会来到左边的区段,然后继续查找,从而取出数据。


语法:CREATE   INDEX 索引名 ON  表名(列) ;




2.唯一索引和非唯一索引


 唯一索引:定义索引的列种,任何两行都没有重复值。在创建主键和唯一键的时候都会创建唯一索引


 非唯一索引:单个关键字可以有多个与其相关联的行。


 语法:CREATE UNIQUE  INDEX 索引名 ON  表名(列) ;




3.反向键索引

 反向键索引适用于在连续增长的列上。因为这种连续的数值,在创建索引的时候,可能会将数据都放在左边,或者右边,这样就是一头重一头轻了,为了避免这种情况,可以使用反向键索引。


反向键索引就是将数据反向,例如在数据库中有7789,反向后为9877。数据会不会出现冲突,数据库会自己处理。


 语法:CREATE  INDEX 索引名 ON  表名(列)  REVERSE;




4.位图索引

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



大于等于走索引ma_oracle_02



表中有14条数据,所以显示14,如果有15条则会显示15。


以第一行ANALYST举例说明,在8、10、13行的地方显示1,说明这几行的工种是ANALYST。其他行显示0,说明其他行的工种不为ANALYST。


 语法:CREATE BITMAP INDEX 索引名 ON  表名(列)


删除索引


DROP  INDEX  索引名