Re: Doubt w.r.t vacuum

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Shridhar Daithankar <shridhar_daithankar(at)persistent(dot)co(dot)in>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Doubt w.r.t vacuum
Date: 2003-07-28 13:56:21
Message-ID: 20030728135621.GA25619@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jul 28, 2003 at 02:29:36PM +0530, Shridhar Daithankar wrote:

> I was just wondering over it. This is for difference between vacuum full and
> vacuum analyze. Can somebody enlighten,

Actually, the different concepts are "lazy vacuum" (plain VACUUM
command, with or without ANALYZE) and full vacuum ("VACUUM FULL"
command, with or without ANALYZE).

Lazy vacuum works one page at a time, so it doesn't need to lock the
entire table. It is able to recover empty space from both updated and
deleted tuples -- in fact, they look the same to it. All free space on
each page is defragmented. Pages with free space are recorded in the
Free Space Map. The FSM has limited space available, so only the pages
with the most free space will be recorded.

Vacuum full locks the entire table and moves tuples between pages. It
leaves all pages full of tuples (except, obviously, the last one), so it
doesn't need to record them in the FSM. Pages that are empty at the end
of the table are truncated. This was the only version of VACUUM present
in releases previous to 7.2.

If I got something wrong, I'm sure someone will correct me.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"I dream about dreams about dreams", sang the nightingale
under the pale moon (Sandman)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2003-07-28 14:02:09 Re: Assignment scheme for implementation-defined error codes?
Previous Message Tom Lane 2003-07-28 13:48:15 Re: Warning for undefined cursor