Re: Best practice when reindexing in production - Mailing list pgsql-performance

From Armand du Plessis
Subject Re: Best practice when reindexing in production
Date
Msg-id CANf99sX6UY+8rJdpu4WiDE6UvEjT6rn7NROrYcn5RS5Ct4+vHg@mail.gmail.com
Whole thread Raw
In response to Re: Best practice when reindexing in production  (Magnus Hagander <magnus@hagander.net>)
Responses Re: Best practice when reindexing in production
List pgsql-performance

On Wed, May 29, 2013 at 2:26 PM, Magnus Hagander <magnus@hagander.net> wrote:
On Wed, May 29, 2013 at 8:24 AM, Niels Kristian Schjødt
<nielskristian@autouncle.com> wrote:
> Hi,
>
> I have a database with quite some data (millions of rows), that is heavily updated all the time. Once a day I would like to reindex my database (and maybe re cluster it - don't know if that's worth it yet?). I need the database to be usable while doing this (both read and write). I see that there is no way to REINDEX CONCURRENTLY - So what approach would you suggest that I take on this?

If you have the diskspaec, it's generally a good idea to do a CREATE
INDEX CONCURRENTLY, and then rename the new one into place (typically
in a transaction). (If your app, documentation or dba doesn't mind the
index changing names, you don't need to rename of course, you can just
drop the old one).

If you wish to recluster it online you can also look into pg_repack - https://github.com/reorg/pg_repack Great tool allows you to repack and reindex your database without going offline. 
 

pgsql-performance by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Best practice when reindexing in production
Next
From: Niels Kristian Schjødt
Date:
Subject: Re: Best practice when reindexing in production