ビットマップインデックス

更新日:

用語解説

ビットマップインデックスは、列の値ごとに各行が該当するかを0と1で表したビット列を持つ索引です。値の種類が少なく行数が多い列について、複数条件をビット演算で高速に組み合わせます。

■ 試験で押さえるポイント

  • 性別、地域区分、状態フラグなど低カーディナリティ列に適し、値ごとのビット列を圧縮すれば大規模表でも効率よく保持できます。

  • AND、OR、NOTを機械語のビット演算でまとめて処理でき、複数の低選択性条件を組み合わせるデータウェアハウスの集計に有効です。

  • 一行の挿入・更新でも対応する複数ビット列の維持が必要で、製品によっては広いロック競合が起きます。更新頻度の高いOLTPには不向きな場合があります。

  • B-treeはキーから個別行や範囲へたどるのに適し、ビットマップは各条件の該当集合を合成するのに適します。低カーディナリティなら常に単独条件が高速とは限りません。

■ 選択肢での判断ポイント

値の種類が少ない列、大量行、AND/OR集計、読取り中心ならビットマップを選びます。高頻度の一行更新用途では更新競合を考慮します。

例: 8行について地域=東を11001010、状態=有効を10101110とすれば、両条件は11001010 AND 10101110=10001010となり、1の位置の行だけを取得します。

音声で聞く

同じ分野の用語