I didn't say do it all the time, I said if he hasn't done it already he should try that as a way of ensuring the database server's understanding of the data as it stands is correct. Otherwise there isn't enough information to suggest other solutions as there is no description of the operating system or resources available to the database server itself. Regardless, if you have better suggestions please serve them up. :-)
-- Ben Scherrey
On Tue, Jun 25, 2019 at 11:01 PM Justin Pryzby <pryzby@xxxxxxxxxxxxx> wrote:
On Tue, Jun 25, 2019 at 10:55:22PM +0700, Benjamin Scherrey wrote:
> Have you done a VACUUM ANALYZE FULL on your database? This needs to be done
> periodically to inform the server of the statistics of how the data and
> relations are distributed across the database.
I think this is wrong.
VACUUM and ANALYZE are good, but normally happen automatically by autovacuum.
VACUUM FULL takes an exclusive lock on the table, and rewrites its data and
indices from scratch. It's not normally necessary at all. It's probably most
useful to recover from badly-bloated table if autovacuum didn't run often
enough, in which case the permanent solution is to change autovacuum settings
to be more aggressive.
Don't confuse with VACUUM FREEZE, which doesn't require exclusive lock, and
normally not necessary if autovacuum is working properly.
Justin