Re: Does it has a way to compact the database size? - Mailing list pgsql-general

From Richard Huxton
Subject Re: Does it has a way to compact the database size?
Date
Msg-id 45ED3965.4080309@archonet.com
Whole thread Raw
In response to Does it has a way to compact the database size?  ("Premsun Choltanwanich" <Premsun@nsasia.co.th>)
Responses Re: Does it has a way to compact the database size?  ("Premsun Choltanwanich" <Premsun@nsasia.co.th>)
List pgsql-general
Premsun Choltanwanich wrote:
> Dear All,
>
> I use PostgreSQL 8.0.3 for store my data started on Sep'06. Today, I use
> database_size('name') function for checking my database size and found that it's
> about 1209715345.
>
> I think that something maybe wrong on my database because I backup my database
> everyday and the backup size is about 10 MB.  So I restore databse from my
> backup file then use database_size('name') function again and found that
> database size is about 56642193.
>
> I can said both 1209715345 and 56642193 are coming from the same database but I
> wonder that why it quiet difference on size.
>
> Any Idea?
> And How can I control or compact my database size for make it smallest as possibled?

To expand on Andreas' answer.

If you want to get your live database down to 56642193 you'll probably
want to VACUUM FULL and REINDEX the whole database. That should
basically get it as small as possible.

While the database is in use, make sure you are running VACUUM often
enough (and have free-space-map [fsm] settings high enough) to keep
track of freed space in your database files. That way the database size
should stay static.

You'll never get as small as the backup file, because (1) it doesn't
contain any indexes etc. and (2) it's compressed.

--
   Richard Huxton
   Archonet Ltd

pgsql-general by date:

Previous
From: "A. Kretschmer"
Date:
Subject: Re: Does it has a way to compact the database size?
Next
From: Richard Huxton
Date:
Subject: Re: postgresql vs mysql