Re: [SQL] Re: why the DB file size does not reduce when 'delete'the data in DB? - Mailing list pgsql-hackers

From Mathijs Brands
Subject Re: [SQL] Re: why the DB file size does not reduce when 'delete'the data in DB?
Date
Msg-id 20010307004601.A51050@ilse.nl
Whole thread Raw
In response to Re: why the DB file size does not reduce when 'delete'the data in DB?  ("xuyifeng" <jamexu@telekbird.com.cn>)
List pgsql-hackers
On Sun, Mar 04, 2001 at 10:01:37AM +0800, xuyifeng allegedly wrote:
> ----- Original Message ----- 
> From: The Hermit Hacker <scrappy@hub.org>
> To: Jaruwan Laongmal <jaruwan@gits.net.th>
> Cc: <pgsql-hackers@postgresql.org>; <pgsql-sql@postgresql.org>
> Sent: Friday, March 02, 2001 8:04 PM
> Subject: Re: [HACKERS] why the DB file size does not reduce when 'delete'the data in DB?
> 
> > On Fri, 2 Mar 2001, Jaruwan Laongmal wrote:
> > 
> > > I had deleted a very large number of records out of my SQL table in order to
> > > decrease the harddisk space.  But after I use command 'ls -l
> > > /usr/local/pgsql/data/base/', it is found that the size of concerning files
> > > do not reduce due to the effect of 'delete' SQL command.  What should I do
> > > if I would like to decrease the harddisk space?
> > 
> > VACUUM
> 
> could anyone remove this nasty bug in 7.2? this is already a big pain and is the reason 
> why am I still using MySQL in my product server. another nasty thing is it does not 
> allow me to reference table in another database.  sigh.

Why would this be a bug? Sure, maybe it's not what you expected, but I hardly think
it qualifies as a bug. For instance, Oracle doesn't release storage (datafiles
specifically) after it has allocated space for them. In fact, I wish I could force
pgsql to allocate storage it might need in the future. It would be great if I could
force pgsql to allocated four datafiles spread across four harddisks, so I would
enjoy a) better database performance and b) rest assured I have the diskspace when
I need it in the future. Call it a poor mans RAID; I think MySQL can perform this
trick.  If pgsql can do this, please let me know

But back to your problem. One way to get the amount of space allocated to shrink is
by recreating the database. Dump it using pg_dump and recreate it using the backup
you just made. This is a fairly simple and quick process. Give it a try on a small
test database first; you don't want to risk loosing your data.

Cheers,

Mathijs
-- 
It's not that perl programmers are idiots, it's that the language
rewards idiotic behavior in a way that no other language or tool has
ever done.                                                   Erik Naggum


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Internationalized error messages
Next
From: John Reid
Date:
Subject: Re: CORBA and PG