反向键索引+什么是反向键索引+反向键索引原理+创建反向键索引

反向键索引
1反向键索引是特殊的B数索引
2适用于在表中严格排序的列上创建反向键索引
3查询时只要像常规方式一样查询数据,不需要关心反向键处理,因为oracle会自动完成该处理。

什么是反向键索引
1在常规的B树索引中,如果主键列时递增的,那么往表中添加新的数据时,B树索引将直接访问最后一个数据,而不是一个节点一个节点的访问。这种情况造成的现象是:随着数据行的不断添加,已经原有数据行的删除,B树索引的很多空间会被浪费掉,如1012节点上方的几个数据行都是空的。而且B树索引将会变得越来越不均匀。如下图这般。
这里写图片描述
添加新的数据:B树索引将在1024节点的下方添加数据
2为了解决1中的问题,我们引入反向键索引。

反向键索引原理
如果用户使用序列编号在表中添加新的纪录,则反向键索引首先反向转换每个键值的字节,然后在反向后的新数据在进行索引.

例如:用户输入的索引键是4201,那么反向键索引将其反向转换为1024,这样索引键就变成非递增了,也就意味着,如果将反向后的索引键添加到叶子节点中,可能在任意的叶子节点中进行,从而使新的数据在值得范围分布式比原来的均匀。

创建反向键索引
1适用于在表中严格排序的列上创建反向键索引

创建反向键索引
提供的测试表
create table student3(
sno varchar2(10) primary key,
/–该列是自动增长的(用序列和触发器实现)/
id number(2),
sname varchar2(20),
sage number(2)
);
创建反向键索引
create index sno_reverse_index on zhou.student3(id)
reverse
tablespace MYSPACE;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值