Controlling automatic database maintenance
Autovacuum is enabled by default in PostgreSQL, and mostly does a great job of maintaining your PostgreSQL database. We say mostly because it doesn't know everything you do about the database, such as the best time to perform maintenance actions.
Getting ready
Exercising control requires some thinking about what you actually want:
- Which are the best times of day to do things? When are system resources more available?
- Which days are quiet, and which are not?
- Which tables are critical to the application, and which are not?
How to do it...
The first thing to do is to make sure that autovacuum
is switched on
, which is the default. Check that you have the following parameters enabled in your postgresql.conf
file:
autovacuum = on track_counts = on
PostgreSQL controls autovacuum with more than 40 individually tunable parameters. That provides a wide range of options, though it can be a little daunting.
The following are the relevant parameters that can be set...