ビットマップインデックス
異なる値ごとにビットベクトルを持つインデックス。性別・ステータス・カテゴリのような低カーディナリティの列に向く。複数の絞り込みのAND/ORがビット演算になるので非常に速い。データウェアハウスの定番だ。
Oracle、DuckDB、ClickHouse、BigQueryはビットマップ系の構造を使う。PostgreSQLには永続的なビットマップインデックスはないが、プランナーが得だと判断すれば一時的なビットマップスキャンを作る。トレードオフは書き込みが多い場合で、ビットマップは更新コストが高くなる(通常はRoaring Bitmapsで圧縮する)。OLTPでは避けられ、単一行の検索にはB木のほうが向く。古典的な用途は、等価条件のWHEREが多数並ぶアドホック分析で、たとえば「国がSEで、statusがactiveで、planがpremiumの顧客すべて」といったものだ。