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)
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 |