位图索引bitmap(一):基本概念

1 基本概念

位图索引(bitmap index)技术是一类特殊的数据库索引技术,其索引使用bit数组(或称bitmap、bit set、bit string、bit vector)进行存储与计算操作。

下面给出位图索引的定义:位图索引可以看作是存储了大量bit位的bit序列,并且通过这些bit序列上的按位操作来响应查询请求,同时每个bit序列中的位数与数据表中的行数是一致的(the bulk of the index data is stored as sequence of bits and these bit sequence are primarily used in bitwise logical operations to answer queries. Typically, each sequence of bits has as many as the number of rows in the data table. Each such sequence is called a bitmap, which gives rises to the name of bitmap index)

2 表现形式

位图索引的概念最早出现在1987年O’Neil发表的Model 204中。传统位图索引适用于低基数(cardinality)列。在索引技术中,列的基数描述了一个列中数据的散列程度,表示该列中不同值的个数;其中一个最极端的低基数的样例就是布尔类型,只含有true和false两种值,所以布尔类型列的基数值为2。
下图是位图索引的一个直观描述。其中,Identifier列是每一行的唯一标识,HasInternet是索引列,那么右侧的Bitmaps下方的两列Y和N则表示左侧所对应的bitmap索引。
位图索引bitmap(一):基本概念_第1张图片

3 传统位图索引与B-tree类索引对比

传统位图索引由于其结构的特殊性,所以在存储空间和特定列的查询性能上都存在一定优势,但是在传统以处理事务为主的数据库领域,我们使用较多的依然还是B-tree(Comer,1979)或者B-tree变种类型(以下统称B*-tree)索引。那么,本节我们将总结传统位图索引与B*-tree索引技术各自的结构特点、优势、局限性以及适用场景。
位图索引bitmap(一):基本概念_第2张图片

4 位图索引家谱与发展历程

位图索引bitmap(一):基本概念_第3张图片

你可能感兴趣的:(索引技术,olap)