Re: Need an idea to operate massive delete operation on big size table. - Mailing list pgsql-admin

From Day, Joseph
Subject Re: Need an idea to operate massive delete operation on big size table.
Date
Msg-id CAAFCUrUDM_pZXk8GJrOH1ABuwFPDJNAOC2Ed4qEpSeW8JYNhDA@mail.gmail.com
Whole thread Raw
In response to Re: Need an idea to operate massive delete operation on big size table.  (Ron Johnson <ronljohnsonjr@gmail.com>)
List pgsql-admin
Unless this is not an option, it would be very quick to do the following:

  • Create a new table without indexes, insert deduplicated rows into the new table. 
  • Index the new table
  • Rename the old table
  • Rename the new table to the old table name
The works really fast but not an option if you have foreign keys on the table.



On Wed, Jan 15, 2025 at 9:22 AM Ron Johnson <ronljohnsonjr@gmail.com> wrote:
Sadly, Postgresql does not have (super-handy) "DISABLE" clauses.

On Wed, Jan 15, 2025 at 10:12 AM youness bellasri <younessbellasri@gmail.com> wrote:

1. Batch Deletion

Instead of deleting all records at once, break the operation into smaller batches. This reduces locking, transaction log growth, and the risk of timeouts.

2. Use Indexes

Ensure that the columns used in the WHERE clause of the delete queries are indexed. This speeds up the identification of rows to delete.

3. Disable Indexes and Constraints Temporarily

If the table has many indexes or constraints, disabling them during the delete operation can speed up the process. Re-enable them afterward.


Le mer. 15 janv. 2025 à 16:08, Ron Johnson <ronljohnsonjr@gmail.com> a écrit :
On Wed, Jan 15, 2025 at 9:54 AM Gambhir Singh <gambhir.singh05@gmail.com> wrote:
Hi,

I received a request from a client to delete duplicate records from a table which is very large in size. 

Delete queries (~2 Billion) are provided via file, and we have to execute that file in DB. Last time it lasted for two days. I feel there must be another way to delete records in an efficient manner

Maybe the delete "queries" are poorly written.  Maybe there's no supporting index.


--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!


--

 


Joseph M. Day
(866) 404-6119 :P
(866) 397-3931 :F
(312) 371-3054 :C

pgsql-admin by date:

Previous
From: Alex Balashov
Date:
Subject: Re: Need an idea to operate massive delete operation on big size table.
Next
From: Sbob
Date:
Subject: Log full DDL alter commands to a table with an event trigger