Re: dump/restore vs vacuum full vs cluster

From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: MirrorX <mirrorx(at)gmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: dump/restore vs vacuum full vs cluster
Date: 2011-09-07 15:12:43
Message-ID: CAOR=d=3fLOT9drjitpntAyCE_R0Sw=X78sfUcNrhDAFwOLJCJw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Tue, Sep 6, 2011 at 3:06 PM, MirrorX <mirrorx(at)gmail(dot)com> wrote:
> hello to all
>
> i am stuck in the following situation. i have a table which is 500GB. due to
> some deleted rows the actual size is about 350-400GB and i would like to
> reclaim that disk space since from now on this table will remain at this
> level (350-400GB). the system is in production but the specific table
> doesn't affect a lot of procedures on the server so it would be ok to do
> this maintenance 'online'. this table also has 2 indexes. one for its
> primary key and one for another column, about 100GB each. as i understand my
> options are:
>
> 1) dump the data of the table, truncate the table, restore it (what happens
> to the indexes in this case?)
> 2)vacuum full and then reindex
> 3)cluster (based on the 2nd index)
>
> what would you suggest if the most important factor is to minimize the total
> time for this procedure?and, is there is any other option except the
> mentioned above? thx in advance

If there are no dependencies on this table like views or fks, you can also do:

select * into somenewtable from oldtable order by somefield;
drop oldtable;
alter table somenewtable rename to oldtable;
create index xyz...;

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message shuaixf 2011-09-07 15:20:40 how can I get the length of columns of a table by system tables/views
Previous Message Kevin Grittner 2011-09-07 15:08:07 Re: Is it possible to import raw data directories in a cluster (Debian)?