B-树索引与位图索引的比较

----------------------------------------------------------------------
B-树(B-tree)索引                  |                位图索引
----------------------------------------------------------------------
适合于high-cardinality列          |      适合于low-cardinality列
----------------------------------------------------------------------
对关键字列的修改相对不算昂贵       |     对关键字列的修改非常昂贵
----------------------------------------------------------------------
使用谓词AND/OR查询效率不高         |    使用谓词AND/OR查询效率高 
----------------------------------------------------------------------
行一级的锁                         |      位图段一级的锁
----------------------------------------------------------------------
较多的存储                         |         较少的存储
----------------------------------------------------------------------
用于OLTP                           |        用于DSS
----------------------------------------------------------------------


在这里:
low-cardinality:就是列的值可以枚举,例如性别和婚姻状况。
high-cardinality:列的值很难枚举,如人名等。


由于位图索引所需要的存储空间要比B-树索引小得多,因此,Oracle服务器在使用位图索引时将整个位图段装入内存,这实际上是将在一个磁盘上得搜索过程变成了一个内存查找过程,从而大大地提高了系统的效率。Oracle是用初始化参数文件中的参数
CREATE_BITMAP_AREA_SIZE来定义这个内存区的大小。默认值为8MB.


其中,在位图索引中修改键值列(索引列)需要段一级的锁。而B-树索引使用的是行一级的锁,还有在这种情况下可能要调整位图,因此在位图索引中对关键字列的修改是非常昂贵的。


综上:B-树索引可能更适合于联机事务处理(OLTP)系统,因为在OLTP系统中,DML操作比较频繁。而位图索引更适合与DSS系统,因为在数据仓库系统中表都比较大而且静态的并且查询比较复杂。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值