Hi, I have a postgres(v9.5) table named customer holding 1 billion rows. It is not partitioned but it has an index against the primary key (integer).
I need to keep a very few records (say, about 10k rows) and remove everything else. insert into customer_backup select * from customer where customer_id in (<id1>,<id2>,..);
If I go for something like above I'm afraid the insert-select may take a very long time as when I ran select count(*) from customer; it is taking about 45 minutes to return the count.
Are there ways to improve the efficiency of the insert-select by , say, tuning some configurations related to memory to improve the efficiency ? This is a box with 96GB of RAM overall and I can stop all the data load and DML operations if needed. But need a way to run this query as much efficiently as possible Thanks and Regards, Karthik Disclaimer: |