bit-wise索引原理(2012/7/3)

本文介绍了Sybase IQ中的位(bit-wise)索引技术,解释了如何解决传统位图索引的缺陷,支持高基数列和范围查找。通过位运算实现单值和范围查找,提供高效的查询性能。
摘要由CSDN通过智能技术生成

1 IQ 简介

SybaseIQ是一款数据仓储产品。个人认为其核心技术包括:列存储和bit-wise索引。首先了解行存储,把属于一行的所有列的数据存储在连续的空间即为行存储。行存储有两个缺点:由于DBMS中磁盘IO的单位是block (oracle中的block大小2K-32K), 如果查询只关心行中的部分列,需要同时读取其它的列,增加了IO;block上的数据类型不一致使得压缩率低。这两个缺点对数据仓储而言是非常大的限制。列存储很好的解决了这两个问题。

位图索引在数据存储中是一个非常有用的索引,相比B+树索引而言,位图索引占用的空间极少,且非常适合集合运算,比如count函数。位图索引的缺点是只适用于基数小的列,当列的基数变大以后,位图索引占用的空间非常大。位图索引的另一个缺点是不支持范围查找。

IQ声称其采用的bit-wise索引解决了位图索引的缺陷,bit-wise索引支持高基数列,且支持范围查找。Sybase为bit-wise技术申请了专利,其专利内容参见《METHOD AND APPARATUSFOR IDNEXING DATABASE COLUMNS WITH BIT VECTORS》,这篇专利论文详细的描述了bit-wise的技术细节。研究这篇论文后,下面是我对bit-wise的理解。

2 bit-wise原理

如图1所示,表存在两个列AA和BB。我们现在要在AA上建bit-wise索引。

 

AA

BB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值