oracle复合索引种类,5.1.3 索引的分类

本文详细介绍了Oracle数据库中的索引类型,包括单列索引、复合索引、B树索引(默认且支持范围扫描)、位图索引(高效查找单一值)和函数索引。重点讲解了B树索引的工作原理及维护机制,对于DML操作的影响。
摘要由CSDN通过智能技术生成

5.1.3  索引的分类

Oracle中的索引灵活多样,根据其组织结构和索引的定义方式,索引又可以细分为多种类型,如下所示。

单列索引:索引基于数据库表的单个列而创建,比如只在empno列上创建的索引,就是单列索引。

复合索引:索引基于数据库表的多个列所创建。比如索引基于empno和ename列而创建,这种索引称为复合索引。

B树索引:Oracle默认使用的索引,索引按B树结构组织并存放索引数据,索引可以是单列索引或复合索引、***索引或非***索引。

位图索引:为索引列的每个取值创建一个位图(bit位,而非图片),对表中的每行使用1位(bit,取值为0或1)来表示该行是否包含该位图的索引列的取值。

函数索引:索引的取值不直接来自列,而是来自包含有列的函数或表达式,这就是函数索引。

在Oracle的索引分类中,B树索引是默认的索引,B树索引实际上就是一棵二叉树,由根、分支和叶节点构成,其中根指向分支的节点信息,分支节点指向下级分支部分和指向叶子节点的信息。叶子节点指向表中每个匹配行的ROWID信息,它是一个双向链表,可以对它们进行任何方面的范围扫描。

B树索引结构如图5.2所示。

B树索引使用B树算法组织并存放索引数据,所有的叶节点都具有相同的深度,因此使用B树索引无论是查询大的表还是小型表,索引的效率都是相同的。

索引一旦创建,Oracle服务器会自动维护所有的索引,如果对表执行插入、修改或删除操作时,DML命令会对索引产生影响:

删除行只会导致对索引条目进行逻辑删除,在删除块中所有条目之前,已删除行占用的空间不可用于新的条目。

插入行会导致在相应的索引段中插入新的索引条目。

更新行会导致对索引进行逻辑删除和插入。

c3954b86dd477e0a20ec8a47a9099f85.png

(点击查看大图)图5.2  B树索引结构

【责任编辑:book TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值