Re: Best way to delete big amount of records from big table

From: Michael Lewis <mlewis(at)entrata(dot)com>
To: Ekaterina Amez <ekaterina(dot)amez(at)zunibal(dot)com>
Cc: postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Best way to delete big amount of records from big table
Date: 2020-03-27 14:41:04
Message-ID: CAHOFxGp+3jXUEin6BdEbkJKy2t+f3rceVmE0bm-LvnYUj1cfTQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

If you can afford the time, I am not sure the reason for the question. Just
run it and be done with it, yes?

A couple of thoughts-
1) That is a big big transaction if you are doing all the cleanup in a
single function call. Will this be a production system that is still online
for this archiving? Having a plpgsql function that encapsulates the work
seems fine, but I would limit the work to a month at a time or something
and call the function repeatedly. Get the min month where records exist
still, delete everything matching that, return. Rinse, repeat.
2) If you are deleting/moving most of the table (91 of 150 million),
consider moving only the records you are keeping to a new table, renaming
old table, and renaming new table back to original name. Then you can do
what you want to shift the data in the old table and delete it.

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Laurenz Albe 2020-03-27 14:46:57 Re: Best way to delete big amount of records from big table
Previous Message Ekaterina Amez 2020-03-27 14:13:49 Best way to delete big amount of records from big table