From: | Ron Johnson <ronljohnsonjr(at)gmail(dot)com> |
---|---|
To: | "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: efficiency random values / sequential ID values in indexes |
Date: | 2024-04-15 12:48:58 |
Message-ID: | CANzqJaD170-1zKXm3M3TwVSPEPeDKh3FuvRcc-ZJV3H2Aa-Ggw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, Apr 15, 2024 at 6:05 AM Sanjay Minni <sanjay(dot)minni(at)gmail(dot)com> wrote:
> Hi
>
> Is there any appreciable difference in using random values or sequential
> values in indexes
>
> in a multi tenanted application there is a choice that the single field
> ID's value is totally random / UUID or the numbers are created with a
> prefix of the tenant. Since all access will be within a tenant only, will
> it make any performance difference between using purely random values vs
> <tenant no prefix part>+<random value>.
>
Two benefits of <tenant no prefix part>+<random value>:
1. In a non-partitioned table, it gives your index "locality of data": all
of customer X's record pointers are in *This* subtree. Makes buffers more
efficient when a customer runs reports. Bonus points if you then regularly
CLUSTER using that table.
2. Makes table partitioning by <tenant prefix> much easier. That also
enhances locality of data.
Just make sure that the field ID is BIGINT...
From | Date | Subject | |
---|---|---|---|
Next Message | Nicolas Seinlet | 2024-04-15 14:25:47 | Re: Failing streaming replication on PostgreSQL 14 |
Previous Message | Ron Johnson | 2024-04-15 12:36:42 | Re: Failing streaming replication on PostgreSQL 14 |