北大青鸟oracle学习笔记10

索引

 

唯一索引:

列中无重复值,唯一约束。

oracle自动为主键和为一键列创建唯一索引

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

 

组合索引:

在表中多个字段上创建的索引

列按任意顺序排列

where子句中包含多个列的查询,可提高访问速度。

语法:create index 索引名 on 表名(列名1,列名2,...,列名n):

 

反向键索引:

反转索引列中的每一个字节

将数据插入操作分布在整个索引上

如:

标准索引 1001,1002,1003,1004

反向键索引 1001,2001,3001,4001

在比较是,标准索引从高到低匹配,每次均重复比较前三位100,而反向键索引在比较第一位时候就可以产生结果,速度在这种情况下更快。

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

alter index 索引名 rebuild noreverse;--重建标准索引

 

位图索引:

为低基数列创建(重复率比较大,如员工表中职位字段)

位图索引存储图示

如图,位图索引将rowid的范围和一个bitmap值绑定到某一类字段上,bitmap中1表示本字段出现,0表示其他字段出现。

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

 

索引组织表:

表数据存储在与其关联的索引中

对表数据的修改智慧导致对索引的更新

在主键上创建

create table 表名(

列名 类型 primary key,

...,

...

) organization index;

查询速度非常快。

 

普通表:

rowid唯一标识行

隐式rowid列

基于rowid的访问

顺序扫描返回所有行

可以存储在簇中

支持分发、复制和分区

 

索引组织表:

主键唯一地标识行

没有隐式rowid列(有一个无意义的值)

基于主键的访问

完全索引扫描返回所有行,并按主键顺序排列

不能存储在簇中

不支持分发、复制和分区

 

 

基于函数的索引:

基于一个或多个列上的函数或表达式创建的索引

表达式中不能包含聚集函数(sum count avg min max)

不能在lob、ref或嵌套表列上创建

在查询中使用函数时自动调用该索引,提高查询速率。

语法:create index 索引名 on 表名(lower(字段名));

 

键压缩索引:

将索引键拆分为前缀项和后缀项

在一个索引块中,通过后缀项共享达到压缩的目的

节省磁盘空间,在一个索引块中可以存储更多的键

语法:create index 索引名 on 表名(字段名1,字段名2) compress 压缩字段名在建立索引时参数位置;

 

分区索引:

索引存储在不同分区中

本地索引:本地前缀索引、本地无前缀索引

全局索引:全局前缀索引、全局无前缀索引

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值