Re: REINDEX vs VACUUM

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: REINDEX vs VACUUM
Date: 2023-01-04 15:34:42
Message-ID: 4dee765f-2196-90b9-efa1-896859552989@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I don't think VACUUM FULL (copy the table, create new indices and other
metadata all in one command) actually vacuums tables.  It's a misleading name.

Something like REBUILD TABLE would be a better name.

On 1/4/23 07:25, Rébeli-Szabó Tamás wrote:
> Here is my understanding:
>
> REINDEX recreates the index from scratch, using the data stored in the
> underlying table. It is the same as dropping and recreating the index
> manually, with regard to the impact on the index file. It can free up
> physical space in the file system. REINDEX will not vacuum the index.
>
> VACUUM does many different things. One of them is vacuuming indexes (for
> the underlying table that is being vacuumed). VACUUM will remove index
> entries that are pointing to dead rows in the underlying table. VACUUM
> will not rebuild the entire index.
>
> VACUUM recycles free index blocks (using FSM), but it does not (usually)
> free up space for the file system physically. VACUUM FULL does that.
>
> VACUUM FULL will vacuum the index, but it will do it by making a copy of
> the index (file) and reorganizing its content in order to free up space
> physically. In that regard, it is like REINDEX. Both VACUUM FULL and
> REINDEX will block reads from the index during the process (by taking an
> ACCESS EXCLUSIVE lock).
>
> Regards,
>
> tamas
>
> 2022. 12. 31. 22:04 keltezéssel, Hao Zhang írta:
>> What is the difference between reindex and vacuum's impact on index file?
>> I deleted an indexed row. Running either vacuum or reindex shows the
>> index entry for the row is removed from the index page. I was under the
>> impression that only reindex will remove dangling index entries. I am
>> guessing that vacuum will not shrink the index file and will only add
>> deleted index entries in the free space file for the index? But REINDEX
>> is recreating the index file from scratch so it is like vacuum full for
>> index?
>>
>> Thanks
>
>

--
Born in Arizona, moved to Babylonia.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Zwettler Markus (OIZ) 2023-01-04 16:54:26 curious postgres (crash) recovery behavior
Previous Message Age Apache 2023-01-04 13:26:07 What is the best setup for distributed and fault-tolerant PG database?