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.
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? |