Мені цікаво, яким найефективнішим способом було б видалення великої кількості рядків з PostgreSQL, цей процес буде частиною повторюваного завдання щодня збирати дані про імпорт (дельта вставки + видалення) у таблицю. Можна видалити тисячі, потенційно мільйони рядків.
У мене є файл первинних ключів, по одному на рядок. Два варіанти, про які я думав, були узгоджені нижче, але я не знаю / не розумію достатньо внутрішніх служб PostgreSQL, щоб прийняти зважене рішення, яке було б найкращим.
- Виконайте
DELETEзапит для кожного рядка у файлі простимWHEREпервинним ключем (або згрупуйте видалення в групи зnвикористаннямIN()пункту) - Імпортуйте первинні ключі у тимчасову таблицю за допомогою
COPYкоманди, а потім видаліть із головної таблиці за допомогою з'єднання
Будь-які пропозиції будуть дуже вдячні!