反键索引又叫反向索引,不是用来加速数据访问的,而是为了均衡IO,解决热块而设计的
比如数据这样:
1000001 1000002 1000005 1000006
在普通索引中会出现在一个叶子上,如果部门数据需求极大,也就是热块,多个需求之间就会有请求竞争。
为了避开竞争 建反键索引 它会将数据逆转
1000001 2000001 5000001 6000001
这样索引键就不可能分布在一个叶子上.实现了IO分离,每个数据在索引中搜寻路径也就不一致了,解决了热点块竞争问题。

建立反键索引:
SQL> alter index i5 rebuild reverse;

Index altered.

查元数据:SQL> select dbms_metadata.get_ddl('INDEX','I5') from dual;

DBMS_METADATA.GET_DDL('INDEX','I5')
--------------------------------------------------------------------------------

CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))
REVERSE
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATI
STICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAX
EXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROU
PS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"

反键索引转化为正常索引:

SQL> alter index i5 rebuild noreverse;

Index altered.

查元数据:SQL> select dbms_metadata.get_ddl('INDEX','I5') from dual;

DBMS_METADATA.GET_DDL('INDEX','I5')
--------------------------------------------------------------------------------

CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINE
XTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUF
FER_POOL DEFAULT)
TABLESPACE "USERS"
已经没有REVERSE,说明已经转划为了正常的普通索引。

Oracle 反键索引/反向索引的更多相关文章

  1. Oracle索引梳理系列(三)- Oracle索引种类之反向索引

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  2. Oracle 反向索引(反转建索引) 理解

    一 反向索引 1.1 反向索引的定义 反向索引作为B-tree索引的一个分支,主要是在创建索引时,针对索引列的索引键值进行字节反转,进而实现分散存放到不同叶子节点块的目的. 1.2 反向索引针对的问题 ...

  3. oracle索引,索引的建立、修改、删除

    索引,索引的建立.修改.删除 2007-10-05 13:29 来源: 作者: 网友评论 0 条 浏览次数 2986 索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和 ...

  4. Oracle的几种索引

    Oracle 提供了多种不同类型的索引以供使用.简单地说, Oracle 中包括如下索引: 1. B* 树索引 这些是我所说的 “ 传统 “ 索引.到目前为止,这是 Oracle 和大多数其他数据库中 ...

  5. Reverse Key Indexes反向索引

    Reverse Key Indexes反向索引A reverse key index is a type of B-tree index that physically reverses the by ...

  6. 【Oracle学习笔记】索引

    1 简介 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息. ...

  7. sql(Oracle)优化之索引

    原文:https://www.cnblogs.com/oraclestudy/articles/5779210.html 建立索引的目的是:l 提高对表的查询速度:l 对表有关列的取值进行检查. 注意 ...

  8. Oracle外键不加索引会引起死锁问题

    转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...

  9. 深入学习Oracle分区表及分区索引

    关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Has ...

随机推荐

  1. 【leetcode】1051. Height Checker

    题目如下: Students are asked to stand in non-decreasing order of heights for an annual photo. Return the ...

  2. win7 开机,或重启自动启动 该文件下的

    win7 开机,或重启自动启动 该文件下的: 把桌面上快捷键放入文件内就行 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start ...

  3. ssd_mobilenet_demo

    操作系统:windows 10  64位 内存:8G GPU:Nvidia MX 150 Tensorflow: 1.4 1.安装python Anaconda3-5.0.1 ,默认python版本( ...

  4. springboot版本依赖

    springboot2.x及以后依赖于jdk1.8及以上. 如图:

  5. 学习日记3、投机取巧使两个表的数据同时在一个treeGrid中显示

    不多说了直接上代码, $('#List').treegrid({ url: '@Url.Action("GetList")', width: $(window).width() - ...

  6. css浮动现象及清除浮动的方法

    css浮动现象及清除浮动的方法   首先先明确浮动最初的定义及使用场景:实现文本环绕图片的效果. 除了用浮动外,目前暂无其他方法实现文本环绕   再来看看浮动的具体定义: 浮动的框可以左右移动,直至它 ...

  7. scrapy过滤重复数据和增量爬取

    原文链接 前言 这篇笔记基于上上篇笔记的---<scrapy电影天堂实战(二)创建爬虫项目>,而这篇又涉及redis,所以又先熟悉了下redis,记录了下<redis基础笔记> ...

  8. 002-Visio绘制时序图

    一.概述 1.1.什么时候使用 当编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开.这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按 ...

  9. mariadb(三)查

    -查询基本使用(条件,排序,聚合函数,分组,分页) 1)创建一个表结构然后添加数据 create table baba (id int unsigned not null auto_increment ...

  10. 16/7/27-PHP环境配置(php5.5.3.7+mysql5.7.12+Apache2.4)

    非常感谢http://www.cnblogs.com/jicheng1014/archive/2012/01/26/2329531.html 配置php环境问题 php.ini 路径 "\& ...