ビットマップインデックス
このトピックでは、ビットマップインデックスの作成と管理方法、および使用例について説明します。
ビットマップインデックスは、ビットマップ(ビットの配列)を使用する特別なデータベースインデックスです。ビットは常に 0 と 1 のいずれかの値を持ちます。ビットマップ内の各ビットは、テーブル内の単一の行に対応しています。各ビットの値は、対応する行の値に依存します。
ビットマップインデックスは、特定の列のクエリパフォーマンスを向上させるのに役立ちます。クエリがソートキー列にヒットした場合、CelerData はプレフィックスインデックスを使用して効率的にクエリ結果を返します。ただし、データブロックのプレフィックスインデックスエントリは 36 バイトを超えることはできません。ソートキーとして使用されていない列のクエリパフォーマンスを向上させたい場合は、その列に対してビットマップインデックスを作成できます。
利点
ビットマップインデックスの利点は次のとおりです。
- 列が低基数の場合、応答時間を短縮できます。例えば、ENUM 型の列などです。列内の異なる値の数が比較的多い場合は、ブルームフィルターインデックスを使用してクエリ速度を向上させることをお勧めします。詳細は Bloom filter indexing を参照してください。
- 他のインデックス技術と比較して、ストレージスペースを節約できます。ビットマップインデックスは通常、テーブル内のインデックス付きデータのサイズのほんの一部しか占めません。
- 複数のビットマップインデックスを組み合わせて、複数の列に対してクエリを実行できます。詳細は Query multiple columns を参照してください。