From: Mike Christensen [mailto:m...@kitchenpc.com] 
Sent: Thursday, November 29, 2012 1:35 PM
To: stho...@optionshouse.com
Cc: Jeff Janes; Schnabel, Robert D.; pgsql-general@postgresql.org
Subject: Re: When does CLUSTER occur?


On Thu, Nov 29, 2012 at 10:28 AM, Shaun Thomas <stho...@optionshouse.com> wrote:
On 11/29/2012 12:20 PM, Jeff Janes wrote:
It would maintain an imperfect clustering, but still much better than
current behavior.

I thought about that, too. The "imperfect clustering" made me erase everything 
I'd written. If the clustering is imperfect, it's not really clustering. It 
would mean less random reads to restart the seek chain though, so it would be a 
perceptible gain. But it's still not real clustering until the order is 
maintained indefinitely.

So far as I know, that simply can't be done with MVCC. Especially on an 
insert-only table that's clustered on a column unrelated to insert order.


How is this implemented in MS SQL then?  Obviously, MS SQL supports real 
clustering and has MVCC..

--

The way MVCC implemented in Postgres (not allowing "in place" updates) is 
obviously complicates things in regards to clustering.

As for MS SQL, here is how it implements clustering:
The index on which the table is clustered actually becomes a "physical holder" 
(for the lack of better term) of the table, meaning the complete table tuples 
are stored in the leaf blocks of the index it is clustered on.  There is no 
other place in the database where they are stored physically.

Regards,
Igor Neyman


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to