Re: Cluster table based on grand parent?

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Cluster table based on grand parent?
Date: 2023-03-28 17:00:21
Message-ID: 334a4103-6f8a-4942-c153-ca0692352d79@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 3/28/23 11:28, Dominique Devienne wrote:
> On Tue, Mar 28, 2023 at 6:06 PM Ron <ronljohnsonjr(at)gmail(dot)com> wrote:
>
> You can only get from parent to grandchild via//child.id
> <http://child.id> to grandchild.parent, so why not cluster grandchild
> on grandchild.parent?
>
>
> Hi. I don't understand your question. Yes, of course, if I want all
> grand-children of a given parent, I'll do for example:
>
> select p.id <http://p.id>, c.id <http://c.id>, c.name <http://c.name>, gc.*
>   from  grandchild gc
>    join child c on gc.parent = c.id <http://c.id>
>    join parent p on c.parent = p.id <http://p.id>
> where p.name <http://p.name> = $1
>
> But w/o clustering on a denormalized grandchild.grandparent FK column, as
> Peter showed,
> and cluster only on grandchild.parent, that's not going to access a mostly
> continuous range
> of pages to fetch those all grandchild rows for that one parent. But
> probably 10 to 50 "row-clusters",
> given the fan-out I mentioned earlier at the child-table level. Or am I
> missing something?

No, you're not missing something.  If you want to go directly from
grandparent to grandchild, then you need to put grandparent_id in the
grandchild table.

Rob Sargent is right, too, though: *practically* it might not make a
difference.  You've got to test.

--
Born in Arizona, moved to Babylonia.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Kirk Wolak 2023-03-28 18:24:44 Re: Using CTID system column as a "temporary" primary key
Previous Message Rob Sargent 2023-03-28 16:49:40 Re: Cluster table based on grand parent?