Во-первых, вам нужно решить, какие из ваших «дубликатов» вы будете хранить. Если все столбцы равны, хорошо, вы можете удалить любой из них ... Но, возможно, вы хотите сохранить только самый последний или какой-то другой критерий?
Самый быстрый способ зависит от вашего ответа на вопрос выше, а также от процента дубликатов в таблице. Если вы отбрасываете 50% строк, вам лучше делать CREATE TABLE ... AS SELECT DISTINCT ... FROM ... ;
, а если вы удаляете 1% строк, лучше использовать DELETE.
Также для операций обслуживания, подобных этой, обычно хорошо установить work_mem
на хороший кусок вашей оперативной памяти: запустите EXPLAIN, проверьте число N сортировок / хэшей и установите для work_mem значение RAM / 2 / N. много оперативной памяти; это хорошо для скорости. Пока у вас есть только одно одновременное соединение ...