"Peter J. Holzer" <hjp-pgsql@hjp.at> writes:
> Both do a parallel index only scan. Both perform 0 heap fetches.
> But one reads 27336 buffers (or about 22 bytes per index entry, which
> sounds reasonable) while the other reads 9995216 buffers (or almost one
> full buffer per row). Why? The entries should be dense in the index in
> both cases and since it's an index only scan (and explain says there
> were 0 heap fetches) I would not expect extra accesses. Where do these
> buffer reads come from?
An "index only" scan is only that if the table's all-visible map is
fully set. Did you vacuum this table after building it, or wait
long enough for autovacuum to do so?
regards, tom lane