Re: Creating an index on a live database

From: Alan Hodgson <ahodgson(at)simkin(dot)ca>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Creating an index on a live database
Date: 2007-02-06 17:54:08
Message-ID: 200702060954.08303@hal.medialogik.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tuesday 06 February 2007 09:38, John McCawley <nospam(at)hardgeus(dot)com>
wrote:
> I have a table with a few million rows which has inserts performed on it
> roughly 50 or so times a minute. It contains a heavily-queried column
> that I would like to add an index to, but I am concerned about a
> deadlock occurring. Should I wait until downtime to add the index, or
> is the Postgres add index command "nice" enough to avoid deadlocks?

It won't deadlock, but it will lock out writes for the duration of the index
creation (the transactions it locks out will just pause until the lock is
released).

If you're running 8.2, though, I believe you can CREATE INDEX CONCURRENTLY,
which will create the index without requiring the write lock on the table.

--
Opportunity is missed by most people because it is dressed in overalls and
looks like work. - Thomas Edison

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2007-02-06 17:59:19 Re: PostgreSQL/FireBird
Previous Message Thomas F. O'Connell 2007-02-06 17:51:33 Re: PostgreSQL on Solaris: Changing Compilers During Point Upgrade