Re: Purging few months old data and vacuuming in production

Поиск
Список
Период
Сортировка
От Ron
Тема Re: Purging few months old data and vacuuming in production
Дата
Msg-id 90262fac-d6c7-e253-6988-a081c9e47a15@gmail.com
обсуждение исходный текст
Ответ на Re: Purging few months old data and vacuuming in production  (Ranjith Paliyath <ranjithp@suntecgroup.com>)
Ответы RE: Purging few months old data and vacuuming in production  (Ranjith Paliyath <ranjithp@suntecgroup.com>)
Список pgsql-general
On 1/6/23 08:27, Ranjith Paliyath wrote:
Thank you very much for the response.
    > Can you do online purging?
    > For example, get a list of the main table's primary keys to be deleted, and    > then nibble away at them all day: in one transaction delete all the records    > for one logically related set of records.  Do that N million times, and    > you've purged the data without impacting production.

So, with this approach, is the advantage like, manual vacuuming worry may be set aside, because auto-vacuuming would deal with the dead rows?

Theoretically, manual vacuuming is never necessary.  I'd occasionally do manual vacuums (after purging a couple of weeks of data, for example).

Disable autovacuum on a table, vacuum it, then reenable autovacuum.

ALTER TABLE table_name SET (autovacuum_enabled = false);
VACUUM table_name;
ALTER TABLE table_name SET (autovacuum_enabled = true);


 This is because the deletion step is executed record by record in main table, with its connected record(s) delete executions in rest of tables? 

I don't know if you have ON DELETE CASCADE.  Even if you do, you'll have to manually delete the tables not linked by FK.  I'd write a PL/pgSQL procedure: pass in a PK and then delete records from the 9 tables in the proper order so as to not throw FK constraint errors.

Due to the infra capability that is there in this instance,

What is "infra capability"?

the impact could be almost none!!??

It'll use some resources, because it's a thread deleting records, but most of the records and index nodes won't be where new records are being inserted.

Note, though, that this will generate a lot of WAL records.

--
Born in Arizona, moved to Babylonia.

В списке pgsql-general по дате отправления:

Предыдущее
От: Ranjith Paliyath
Дата:
Сообщение: Re: Purging few months old data and vacuuming in production
Следующее
От: Brad White
Дата:
Сообщение: Re: Updating column default values in code