Bitmap scans are a multi-step process that consist of a Bitmap Heap Scan, one or more Bitmap Index Scans and optionally BitmapOr and BitmapAnd operations.

A Bitmap Index Scan is the first step, using an index to create a bitmap of rows that may* fulfil (at least part of) the condition.

If the bitmap does not fit in memory, defined by work_mem, Postgres will make some blocks lossy, but this is shown on the Bitmap Heap Scan.

*Some index types, like BRIN, don't guarantee it.

 


For more help deciphering query plans, check out our product pgMustard.


Last checked: September 2024, PostgreSQL 17

Issue reports and suggestions are welcome, please get in touch.