第二章 定义和构建索引(三)
位图索引
位图索引是一种特殊类型的索引,它使用一系列位串来表示与给定索引数据值相对应的一组ID值。
位图索引具有以下重要功能:
- 位图是高度压缩的:位图索引可以比标准索引小得多。这大大减少了磁盘和缓存的使用量。
- 位图操作针对事务处理进行了优化:与使用标准索引相比,可以在表中使用位图索引,而不会降低性能。
- 位图上的逻辑操作(
counting、AND和OR)经过优化以获得高性能。 - SQL引擎包括许多可以利用位图索引的特殊优化。
位图索引的创建取决于表的唯一标识字段的性质:
- 如果表的
ID字段定义为具有正整数值的单个字段,则可以使用此ID字段为字段定义位图索引。此类型的表使用系统分配的唯一正整数ID,或使用IdKey定义自定义ID值,其中IdKey基于类型为%Integer且MINVAL>的单个属性,或类型%Numeric型且Scale=0且MINVA>0。 - 如果表的
ID字段未定义为具有正整数值的单个字段(例如,子表),则可以定义采用正整数的%BID(位图ID)字段作为代理ID字段;这允许为该表中的字段创建位图索引。
受下列限制,位图索引的操作方式与标准索引相同。 索引值将被整理,可以在多个字段的组合上建立索引。
位图索引操作
位图索引的工作方式如下。
假设Person表,其中包含一些列:

此表中的每一行都有一个系统分配的RowID号(一组递增的整数值)。

.png)