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