Robert Haas wrote: > So, what do we need in order to find our way to index-only scans? > > 1. The visibility map needs to be crash-safe. The basic idea of > index-only scans is that, instead of checking the heap to find out > whether each tuple is visible, we first check the visibility map. If > the visibility map bit is set, then we know all tuples on the page are > visible to all transactions, and therefore the tuple of interest is > visible to our transaction. Assuming that a significant number of > visibility map bits are set, this should enable us to avoid a fair > amount of I/O, especially on large tables, because the visibility map > is roughly 8000 times smaller than the heap, and therefore far more > practical to keep in cache. However, before we can rely on the
FYI, because the visibility map is only one _bit_ per page, it is 8000 * 8 or 64k times smaller than the heap, e.g. one 8k page covers 64MB of heap pages. This is important because we rely on this compactness in hope that the WAL logging of this information will not be burdensome. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers