IT用語集 › データベース › ビットマップヒープスキャン

ビットマップヒープスキャン

データベース Svenska → 更新: 2026-10-21

通常のインデックススキャンには該当行が多すぎ、テーブル全体を読むほどではない場合に、PostgreSQL が使う実行計画ノード。

1万件の該当行に対する素直なインデックススキャンの問題は、行がインデックス順に取得されるため、ディスクがテーブル中を行ったり来たりすることだ。そこで、まずインデックスをたどり、該当行を含むページのビットマップをメモリ上に作って物理順に並べ替え、そのページを順番に読む。さらに、テーブルに触れる前に、二つのインデックスの結果を AND や OR で組み合わせることもできる。work_mem が正確なビットマップに足りない場合は、行ではなくページ単位の印に退化し、実行計画に Recheck Cond が現れる。そのページ上の全行について、条件を再評価しなければならないということだ。

← 用語集に戻る