索引的概念

官方定义:索引是建立在表的一列或多列上的辅助对象。可以加快对表的访问速率。

索引类似书的目录。

《转》索引的分类

逻辑上:
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引

物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree:
Normal 正常型B树
Rever Key 反转型B树
Bitmap 位图索引

单行索引:

基于单个列所建立的索引

语法:  create index 索引名 on 表名(列名)

p_w_picpath

多行索引:

基于两列或多列建立的索引,在一张表上可以有多个索引,但要求列的组合都不相同

例如:

oracle 索引的概念_第1张图片

唯一索引:

当这一列数据中,任意两行的值都不相同,可以创建唯一索引。

当创建 primary key 或者 unique constraint时 唯一索引都会被自动建立

语法: create unique index 索引名 on 表名(列名);

例如:

p_w_picpath

非唯一索引

单行索引,多行索引,唯一索引,非唯一索引都属于B*数索引,这种数索引适合索引DTP(动态)欢迎

索引两大类,B*数索引和位图索引

另外一种位图索引适合大型静态表仓库环境

例如表中有很多重复的值,但很少去做改动时,适合创建位图索引。

位图索引以一种压缩形式存放,因此占用空间较少。

语法:create bitmap index 索引名 on 表名(列1,列2…);

例如:

p_w_picpath