Atitit 索引技术--位图索引

索引在数据结构上可以分为三种B树索引、位图索引和散列索引

存储原理

编辑

位图索引对数据表的列的每一个键值分别存储为一个位图,Oracle对于不同的版本,不同的操作方式,数据生成均有差别.

对于8i,9i,

下面分3种方式来讨论数据的插入:

a.一次插入一行,插入多行后,一次提交;

b.每插入一行,提交一次;

c.批量插入方式,一次提交;

对于第一种方式,观察位图索引的变化情况.

a.假设插入8行相同键值的数据,如果以每行方式插入,然后一次提交,则会生成8个位图

SQL> Insert Into H病人挂号记录(Id,No,号别,执行人) Values(1,'G000001',1,'张1');

1 row inserted

基本信息

编辑

一.什么是位图索引

位图索引是一种使用位图的特殊数据库索引。

主要针对大量相同值的列而创建(例如:类别,操作员,部门ID,库房ID等),

索引块的一个索引行中存储键值和起止Rowid,以及这些键值的位置编码,

位置编码中的每一位表示键值对应的数据行的有无.一个块可能指向的是几十甚至成百上千行数据的位置.

这种方式存储数据,相对于B*Tree索引,占用的空间非常小,创建和使用非常快.

当根据键值查询时,可以根据起始Rowid和位图状态,快速定位数据.

当根据键值做and,or或 in(x,y,..)查询时,直接用索引的位图进行或运算,快速得出结果行数据.

当select count(XX) 时,可以直接访问索引就快速得出统计数据.

创建语法很简单,就是在普通索引创建的语法中index前加关键字bitmap即可,例如:

create bitmap index H病人挂号记录_ix_执行人 on H病人挂号记录(执行人);

适用场合

编辑

1.位图索引是Oracle数据库在7.3版本中加入的,8i,9i企业版和个人版支持,标准版不支持.

2.基于规则的优化器无法使用Bitmap索引

3.适应于有大量重复值的列查询

4.对于8i,9i版本,不适用于单行插入,适用于批量插入的数据,

因为单行插入时,相同键值,每插入8行就会生成一行索引块中的位图段,即使相同的值.

而批量插入时,相同键值只生成一个位图段.

5.由于并发DML操作锁定的是整个位图段的大量数据行,所以位图索引主要是用于OLAP应用,也可以用于OLTP中主要为读操作的表.

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门  阿尔 拉帕努伊

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,uke宗教与文化融合事务部部长,Uke部落首席大酋长,uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,奶牛科技cto ,uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人,。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人。。

转载请注明来源:attilax的专栏   http://blog.csdn.net/attilax

--Atiend

Atitit 索引技术--位图索引相关推荐

  1. B树索引和位图索引介绍

    一  前言:? ROWID:包含键值的行的行ID,(查找块的最快方法,类似于门牌号)? 因为所有行属于同一个段,所以要使用受限的ROWID 指向表行 索引是数据库为了提高查询效率提供的一种冗余结构,保 ...

  2. java实践7索引之Hash索引、位图索引、倒排索引原理

    文章目录 java实践7索引之Hash索引.位图索引.倒排索引原理 Hash索引 优缺点: 位图索引: 优缺点: 倒排索引: B树+倒排索引 java实践7索引之Hash索引.位图索引.倒排索引原理 ...

  3. mysql bitmap位图索引_Oracle位图索引(Bitmap Index)

    欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 位图(bitmap)索引是另外一种索引类型,它的组织形式与B树索引相同,也是一棵平衡树.与B树索引的区别在于叶子节点里存 ...

  4. mysql能不能创建位图索引_MySQL位图索引解决用户画像问题(简化创建流程)

    基于前文,创建索引的时候有一个问题 每个bigint类型包括60个记录的位信息. 但是第0位表示第六十个记录的位 第1位至第59位表示第一至五十九的记录的位信息. 这样记录的位信息保存并不连续, 使用 ...

  5. mysql bitmap位图索引_PostgreSQL位图索引

    PostgreSQL位图索引 发布时间:2017-04-16 06:50 来源:互联网 当前栏目:电脑编程入门 什么是位图索引? 位图索引的一些特性? 位图索引的优缺点? 来看下位图扫描的例子. QU ...

  6. mysql实现位图索引_位图索引,数据库索引浅浅的学习

    位图(BitMap)索引 前段时间听同事分享,偶尔讲起Oracle数据库的位图索引,顿时大感兴趣.说来惭愧,在这之前对位图索引一无所知,因此趁此机会写篇博文介绍下位图索引. 1. 案例 有张表名为ta ...

  7. mysql索引技术_MySQL索引类型

    首先请查看不同引擎支持的索引类型:存储引擎简介 . 聚集索引和非聚集索引概念见:聚集索引与非聚集索引 和 聚集索引 . 覆盖索引见:覆盖索引 . 1. InnoDB的每一个表都会有一个聚集索引(第一索 ...

  8. oracle 位图索引 原理,数据库教程:Oracle 位图索引叙述

    在Oracle数据库学习中,出现"位图索引"时,你知道是什么吗?位图索引是Oracle较为引人注目的地方,其主要用在OLAP方面,也就是数据仓库方面用到,目的是在加快查询速度是,节 ...

  9. oracle数据块过热,Oracle索引技术研究

    Oracle索引类型 B树索引 特定类型索引 确定索引列 主键和唯一键值列的索引 外键索引 其他合适的索引列 B树索引 B树索引算法 B树是指B-tree(Balanced Tree),B树的存在是为 ...

  10. Oracle教程之四招提高Oracle位图索引的使用效果

    位图索引是Oralce数据库索引中的异类,其在某些比较特殊的场合中有突出的表现.一般来说,位图索引的效果直接跟列的基 数相关.为此在谈到如何提高位图索引的使用效果时,也往往跟这个列的基数相关.为此必须 ...

最新文章

  1. python资料书-关于 Python 的经典入门书籍有哪些?
  2. 黑苹果睡眠无法唤醒_电脑睡眠后无法唤醒怎么办?
  3. springboot中使用ApplicationListener和ApplicationEvent /@EventListener监听事件
  4. 安装工程图形算量离我们还多远
  5. 一个情怀引发的生产事故
  6. mysql 5.7 pxc_mysql5.7 PXC安装记录
  7. 三个数差的平方公式推导过程_勾股数公式的简单推导
  8. SQL笔记-用户表中增加salt属性与真实密码聚合存储
  9. jupyter notebook 某个cell 一直在运行
  10. JAVA自定义变量_Java 系统自定义变量-D
  11. 浅谈Javascript -- 【嵌套函数及闭包】
  12. 二维树状数组(bzoj 1452: [JSOI2009]Count)
  13. cocos2d for android,cocos2d jsb 打包 Android APK
  14. java batik svg_java使用batik转换svg文件
  15. 纹宁指纹支持谷歌浏览器指纹采集和指纹比对
  16. gradle启动项目编译报错:Executing task ‘clean‘...Task execution finished
  17. 数据结构选择练习题(有解析)
  18. Unity 3D系列 摄像机围绕主角进行旋转、缩放
  19. 数据分析——房源分析项目
  20. Hive分区修复命令MSCK介绍与使用

热门文章

  1. 关于文件服务器共享文件的备份与恢复
  2. Delphi通过Map文件查找内存地址出错代码所在行
  3. 斯坦福大学的Gss Audio Codec 调试分析
  4. Linux下电子邮件服务器的配置与应用
  5. 【红茶原创】-MRTG Install In RedHat AS4
  6. LeetCode-1-two-sum
  7. PostgreSQL参数学习:random_page_cost
  8. poj 1265-Area解题报告
  9. 什么是ibatis?(供初学ibatis的人阅读)
  10. 20200610每日一句