Re: Re: [HACKERS] why the DB file size does not reduce when 'delete'the data in DB?

From: Mathijs Brands <mathijs(at)ilse(dot)nl>
To: xuyifeng <jamexu(at)telekbird(dot)com(dot)cn>
Cc: pgsql-hackers(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org
Subject: Re: Re: [HACKERS] why the DB file size does not reduce when 'delete'the data in DB?
Date: 2001-03-06 23:46:01
Message-ID: 20010307004601.A51050@ilse.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

On Sun, Mar 04, 2001 at 10:01:37AM +0800, xuyifeng allegedly wrote:
> ----- Original Message -----
> From: The Hermit Hacker <scrappy(at)hub(dot)org>
> To: Jaruwan Laongmal <jaruwan(at)gits(dot)net(dot)th>
> Cc: <pgsql-hackers(at)postgresql(dot)org>; <pgsql-sql(at)postgresql(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Cyril VELTER 2001-03-07 00:04:20 Re: How to shoot yourself in the foot: kill -9 postmaster
Previous Message Matthew Hagerty 2001-03-06 22:52:21 Contributions?

Browse pgsql-sql by date

  From Date Subject
Next Message Mathijs Brands 2001-03-07 00:09:46 Re: [SQL] Re: Re: MySQLs Describe emulator!
Previous Message Boulat Khakimov 2001-03-06 23:44:31 Undefined symbol