Re: indexes on primary and foreign keys

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Burak Seydioglu <buraks78(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: indexes on primary and foreign keys
Date: 2006-01-11 23:06:33
Message-ID: 29042.1137020793@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Burak Seydioglu <buraks78(at)gmail(dot)com> writes:
> I do a load of sql joins using primary and foreign keys. What i would like
> to know if PostgreSQL creates indexes on these columns automatically (in
> addition to using them to maintain referential integrity) or do I have to
> create an index manually on these columns as indicated below?

Indexes are only automatically created where needed to enforce a UNIQUE
constraint. That includes primary keys, but not foreign keys.

Note that you only really need an index on the referencing (non-unique)
side of a foreign key if you are worried about performance of DELETEs
or key changes on the referenced table. If you seldom or never do that,
you might want to dispense with the index.

regards, tom lane

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Michael Fuhr 2006-01-11 23:21:57 Re: indexes on primary and foreign keys
Previous Message Tom Lane 2006-01-11 23:03:05 Re: Extremely irregular query performance