ビットマップインデックスとは?ビットマップインデックス
ビットマップインデックスとは、列が取り得る値ごとに、その値を持つ行を1、持たない行を0で表したビット列を用意する索引。複数条件の絞り込みをビット列のANDやORだけで処理でき、値の種類が少ない列では圧縮も強く効いて索引そのものが小さくなる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
B+木索引は行ごとにキー値と位置情報を持つため、取り得る値が数種類しかない列では索引が大きいわりに絞り込めず、最適化部が使わない判断をする。分析系の問合せは、そうした区分列を何本も組み合わせて絞ることが多い。値の側を軸にビット列で持てば、条件の組合せがそのままビット演算になる。
具体例
性別・会員区分・都道府県のように値の種類が限られる列に張り、「関東かつ女性かつ有料会員」の絞り込みをビット演算で一度に処理する。Oracle Databaseがデータウェアハウス向けに備えている。
試験での引っ掛け
値の種類が多い列(カーディナリティが高い列)には向かない。また1行の更新でビット列の広い範囲にロックが必要になりやすく、更新が絶えないOLTPには不向きで、参照が中心のデータウェアハウス向きとされる。
関連用語
出た過去問
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15(IPA)
B+木インデックスとビットマップインデックスを比較した説明のうち、適切なものはどれか。
正解:少数の異なる値をもつ列への検索は、ビットマップインデックスの方が有効である。
要点:値の種類が少ない列にはビットマップインデックスが有効
ビットマップインデックスは、列がとり得る値ごとに行の該当有無をビット列で表す方式である。値の種類(カーディナリティ)が少ないほどビット列の本数が少なく済んで効率がよく、性別や区分コードのような列に向いている。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。