From: | "Alexander Staubo" <alex(at)purefiction(dot)net> |
---|---|
To: | "Patrice Castet" <pcastet(at)agematis(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Clustered tables improves perfs ? |
Date: | 2007-09-13 13:31:58 |
Message-ID: | 88daf38c0709130631y13e8a185ufd9b9b4c1c9d1ee8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On 9/13/07, Patrice Castet <pcastet(at)agematis(dot)com> wrote:
> I wonder if clustering a table improves perfs somehow ?
As I understand it, clustering will help cases where you are fetching
data in the same sequence as the clustering order, because adjacent
rows will be located in adjacent pages on disk; this is because hard
drives perform superbly with sequential reads, much less so with
random access.
For example, given a table foo (v integer) populated with a sequence
of integers [1, 2, 3, 4, ..., n], where the column v has an index, and
the table is clustered on that index, a query such as "select v from
foo order by v" will read the data sequentially from disk, since the
data will already be in the correct order.
On the other hand, a query such as "select v from foo order by
random()" will not be able to exploit the clustering. In other words,
clustering is only useful insofar as your access patterns follow the
clustering order.
Alexander.
From | Date | Subject | |
---|---|---|---|
Next Message | Brad Nicholson | 2007-09-13 14:15:15 | Long Running Commits - Not Checkpoints |
Previous Message | Patrice Castet | 2007-09-13 13:03:54 | Clustered tables improves perfs ? |