Re: Unreasonable size of table pg 8.2.5 - Mailing list pgsql-general

From Bill Moran
Subject Re: Unreasonable size of table pg 8.2.5
Date
Msg-id 20071206092558.d12554a1.wmoran@potentialtech.com
Whole thread Raw
In response to Unreasonable size of table pg 8.2.5  (Henrik <henke@mac.se>)
Responses Re: Unreasonable size of table pg 8.2.5
List pgsql-general
Henrik <henke@mac.se> wrote:
>
> Hello list,
>
> I have a table with 135 rows and it still takes up about 360MB with
> only small columns. Details below.
>
> db=# vacuum full tbl_archive;
> VACUUM
> db=# select * from
> pg_size_pretty(pg_total_relation_size('tbl_archive'));
>   pg_size_pretty
> ----------------
>   360 MB
> (1 row)
>
> db=# select * from pg_size_pretty(pg_relation_size('tbl_archive'));
>   pg_size_pretty
> ----------------
>   16 kB
> (1 row)
>
>
> Looks like we have a very bloated index.
> After reindex
> db=# select * from
> pg_size_pretty(pg_total_relation_size('tbl_archive'));
>   pg_size_pretty
> ----------------
> 80 kB
> (1 row)
>
> I thought that reindex should not be necessary in 8.2.5?

VACUUM FULL tends to bloat indexes, which is one of the reasons that it's
not recommended for regular maintenance.

Use plain VACUUM instead.  If you feel the need to run a VACUUM FULL, always
do a REINDEX afterward.

Even still, there are apparently some corner cases around that cause index
bloat.  If it turns out that you've found one, you may want to document it
so the developers can look into possible solutions.

--
Bill Moran
http://www.potentialtech.com

pgsql-general by date:

Previous
From: Henrik
Date:
Subject: Unreasonable size of table pg 8.2.5
Next
From: Ivan Sergio Borgonovo
Date:
Subject: Re: simple update on boolean