From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Josh Tolley" <eggyknap(at)gmail(dot)com> |
Cc: | "Michael Glaesemann" <grzm(at)seespotcode(dot)net>, "Vincenzo Romano" <vincenzo(dot)romano(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Difference between PRIMARY KEY index and UNIQUE-NOT NULL index |
Date: | 2007-07-21 06:00:11 |
Message-ID: | 21140.1184997611@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Josh Tolley" <eggyknap(at)gmail(dot)com> writes:
> Might it just be that the original UNIQUE + NOT NULL index was bloated
> or otherwise degraded, and reindexing it would have resulted in the
> same performance gain? That's just a guess.
Yeah. There is precious little difference between UNIQUE+NOT NULL and
PRIMARY KEY --- to be exact, the latter will allow another table to
reference this one in FOREIGN KEY without specifying column names.
The planner knows nothing of that little convenience.
The interesting thing about this report is that the plan changed after
creating the new index. That has to mean that some statistic visible to
the planner changed. Creating an index does update the pg_class columns
about the table's size and number of rows, but probably those weren't
that far off to start with. My bet is that the new index is a lot
smaller than the old because of bloat in the old index. If so, REINDEX
would have had the same result.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Pg Coder | 2007-07-21 06:15:28 | Char vs SmallInt |
Previous Message | Josh Tolley | 2007-07-21 05:32:29 | Re: Difference between PRIMARY KEY index and UNIQUE-NOT NULL index |