Linux ·

PostgreSQL 位图索引

什么是位图索引?

位图索引就是用一个位图表格来存放记录是否可见的结构。

位图索引的一些特性?

位图索引实现方法: 用一个BIT位来表示这个属性对应的值是否存在,存在为1,不存在为0.

位图索引作用范围:处理状态值,也可以说可选择度很高的情形。

位图索引的优缺点?

位图索引优势: A, 可以很大的压缩比率节省空间;B,非常快速的定位到检索值可见与否。

位图索引缺陷: A,  位图本身无序存储,每次检索对磁盘都是一次随机IO;B,因为压缩存储,适合OLAP应用。 当然也可以不用压缩,比如INFOBRIGHT就提供这样的功能。

PostgreSQL不支持位图索引,所以也就不支持位图信息的压缩存储。 不过在创建查询计划的时候,会为普通的索引(BTREE,HASH)等建立位图表,即为Bitmap Heap Table.

其中

Bitmap Index Scan 用来在内存中创建一个位图表,每一个BIT表示一个与过滤条件有关的页面。 此页面有可能有数据为1,不可能为0.

Bitmap Heap Scan. 在内存中创建好的位图表指针对应的页面进行顺序扫描,排除不符合的记录。

参与评论