I know everyone is busy with the 7.3beta, but maybe this is something to think of before releasing the beta. Currently
VACUUMwill vacuum every table, but sometimes
it's desireable to leave tables untouched because the're mostly static or protocol tables. In my case this would be the
pg_largeobjectwhich is around 4GB of data, while the
other tables are ~40MB. Vacuuming the data is important, the large object table however rarely changes. The same goes
for a protocol table which is around 1GB and never is
changed beside INSERTS, so it's just growing, but never needs vacuum. VACUUM on the 4GB table needs a long long time
andno improvements, it just hurts performance and
fills OS buffers.
If pg_class would have a field for storing misc flags (e.g. a bitfield). This would allow to set a flag like
NO_AUTO_VACUUMand modify the vacuum code to leave that tables untouched
if not specified by hand. Maybe there are other uses for such a bitfield too, and will help prevent an initdb for
simpleimprovements.
Any comments?
Best regards,Mario Weilguni