From: | Demitri Muna <postgresql(at)demitri(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | CLUSTER, VACUUM, and TABLESPACEs (oh my) |
Date: | 2021-01-25 00:38:08 |
Message-ID: | 959B953F-6882-4ED1-A560-4B0335C39CFD@demitri.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I would like to request a little clarification on the CLUSTER and VACUUM commands. My use case here (partially) is when my disk runs out of space and I want to move a table to a newly created tablespace. These questions somewhat overlap. Let’s say I am starting with a table that is not CLUSTERed on a given index, but I want it to be.
* If I run “CLUSTER table USING idx” on a table, is VACUUM FULL required/useful afterwards, or should I assume that the cluster operation did the equivalent of a VACUUM FULL?
* If I have previously run a CLUSTER command on a table, will future VACUUM FULL commands rewrite the table in the order specified in the previous CLUSTER?
* If I want to move a table to a new tablespace, is it possible to CLUSTER+VACUUM in the same step since the whole table will be rewritten anyway? This would be very useful in low-disk space scenarios. I did find this answer, but it’s dated several years ago and was hoping for something better supported. https://dba.stackexchange.com/a/87457/121020
The documentation is somewhat silent on these details, so I thought I’d ask here. Right now I move a table to a new tablespace, cluster on an index, and then do a full vacuum which results in three full copies of the table being written, which seems less than optimal where one should only be needed as far as I understand things.
Cheers,
Demitri
From | Date | Subject | |
---|---|---|---|
Next Message | Guillaume Lelarge | 2021-01-25 01:50:12 | Re: CLUSTER, VACUUM, and TABLESPACEs (oh my) |
Previous Message | Adrian Klaver | 2021-01-24 22:02:57 | Re: ubuntu 18: PostgreSQL does not start. how can I totally remove and reinstall it |