Re: Does PostgreSQL cache all columns of a table after SELECT?

From: Tim Schwenke <tim(at)trallnag(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: "Pgsql Novice" <pgsql-novice(at)lists(dot)postgresql(dot)org>
Subject: Re: Does PostgreSQL cache all columns of a table after SELECT?
Date: 2023-06-05 13:17:17
Message-ID: 1888bb46d75.c27dbb7f688001.5044215935079224344@trallnag.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hello David,

from what I understand, in PostgreSQL, tables are stored in one or more files called segments. There is no separation by columns.

https://www.postgresql.org/docs/8.1/storage.html

This means if I select a single column from a table the first time, the full file / segment is read and put into page cache if there is enough space. This means a table with only one large column large_a takes up less page cache compared to a table with many large columns large_a and large_b, even though in both cases only large_a is selected.

Is that more or less correct? Ignoring toast?

Tim S.

---- On Mon, 05 Jun 2023 14:58:21 +0200 David G. Johnston wrote ---

>
>
> On Monday, June 5, 2023, Tim Schwenke tim(at)trallnag(dot)com> wrote:
>
>
> Does the cache also contain large_b? Or is only large_a cached? Assumption is that memory is large enough to fit everything.
>
>
> Shared buffers is a page cache.
>
> David J. 
>

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Tim Schwenke 2023-06-05 13:19:08 Re: Does PostgreSQL cache all columns of a table after SELECT?
Previous Message David G. Johnston 2023-06-05 12:58:21 Re: Does PostgreSQL cache all columns of a table after SELECT?