你是否了解Oracle B树索引

数据库 Oracle
这里介绍Oracle B树索引所有叶子块都应该在同一层上,并且叶子节点实际上都是双向链表,这样在进行索引区间扫描的时候,只需通过叶子节点的向前或者向后就可以了,无需再对索引结构进行导航。

在向大家详细介绍Oracle B树索引之前,首先让大家了解下非唯一索引中,然后全面介绍Oracle B树索引。Oracle B树索引中不存在非唯一的条目。

在非唯一索引中,Oracle会把rowid作为一个额外的列追加到键上,使得键唯一。

Exp:create index I on T( x , y ) ,从概念上讲就是Create unique index I on T(x , y , rowid)。Oracle会首先按索引键值排序,然后再按照rowid升序排序。

在唯一索引中,数据只按索引键值排序。

1.大多数情况下,Oracle B树索引的高度都是2或者3,所以一般情况下,在索引中找到一个键只需要2或3次I/O。

2.Oracle B树索引所有叶子块都应该在同一层上,并且叶子节点实际上都是双向链表,这样在进行索引区间扫描(index range scan)的时候,只需通过叶子节点的向前或者向后就可以了,无需再对索引结构进行导航。

3.适当对Oracle B树索引存在重复值的列进行压缩, 可以增加缓存命中率,使I/O数减少,因为
相关的条目可能都存在在一个块中。(Exp:create index I on T(userid , username) username=’steven’这个值可能就会对应于多个rowid放在同一个索引块中);但是带来的负面作用是使索引结构复杂化,维护索引更耗时,查询索引占用CPU更多的时间。(压缩适合用于多列索引中)

4.Oracle B树索引的反向键索引主要用于缓解索引右侧缓冲区忙等待。适合用于类似于sequence产生的PK主键上,因为这些列不太会需要使用区间扫描,也就是不会用到max(PK),min(PK),between and或者where PK < 200等查询

5.如果在查询中会有order by colum1 asc,column2 desc, 试着在创建索引时create index I on T(colum1 asc,column2 desc) , 因为Oracle INDEX默认是DESC排序,在索引中排序总比在磁盘中排序好得多。

6.适合Oracle B树索引使用的2种情况:
1)访问表中占很小比例的行
2)根本不访问表,所需查询的数据全部在索引中
3)一种特殊的用法,使用索引访问表的全部行,这样的做法是为了使查询最初的响应时间很短,不是针对总吞吐量进行的优化。

7.索引是按索引键顺序存储,索引会按键的有序顺序进行访问。索引指向的块则随机存储在堆中。

8.建议:在thin表中使用Oracle B树索引查询<2-3%的列,fat表中<20-25%的列。

【编辑推荐】

  1. 分析讨论Oracle数据库恢复
  2. 详谈Oracle远程磁盘镜像
  3. 新的Oracle 11g功能展示
  4. 详细分析Oracle XML数据
  5. 分析探讨Oracle Data Guard
责任编辑:佚名 来源: 计世网
相关推荐

2009-11-17 09:31:06

Oracle Dual

2009-11-18 13:15:06

Oracle触发器

2009-11-17 17:11:32

Oracle空闲数据块

2020-04-01 18:08:57

MySQL B-树B+树

2019-08-29 10:46:22

MySQL索引数据库

2019-09-24 09:33:53

MySQLB+树InnoDB

2021-11-30 21:10:19

数据库B树索引

2010-10-25 09:39:43

Oracle FBI索

2019-01-29 19:43:10

MySQL索引数据库

2021-02-16 16:38:41

MySQLB+树索引

2019-04-01 14:01:13

B+树索引哈希索引算法

2009-11-18 13:20:07

PHP设计模式

2021-05-31 11:43:19

B-树MySQL索引

2021-06-02 10:23:06

索引B+树数据

2020-02-12 19:01:22

索引B-树B+树

2022-10-08 09:13:18

搜索引擎⽹站

2009-12-02 18:04:35

SUSE Applia

2023-11-06 11:18:22

数据库索引B 树

2021-05-19 09:51:31

MySQL-B+树数据

2024-05-22 09:01:53

InnoDBB+索引
点赞
收藏

51CTO技术栈公众号