I am running a PostgreSQL database that has several tables which store logging information. This information is for reporting purposes only and gets dumped to a file and deleted from the database if older than 30 days.
There can be millions of rows deleted, and we have been running a REINDEX each time after deletion.
Is this sufficient, or should we also be running a VACUUM or VACUUM ANALYZE? Or is the REINDEX not necessary and we should instead just run a VACUUM or VACUUM ANALYZE?
We are using PostgreSQL 8.2.3, which I believe does not allow auto-vacuuming.