Me pregunto cuál sería la forma más eficiente de eliminar grandes cantidades de filas de PostgreSQL, este proceso sería parte de una tarea recurrente todos los días para importar datos en masa (un delta de inserciones + eliminaciones) en una tabla. Podría haber miles, potencialmente millones de filas para eliminar.
Tengo un archivo de claves principales, una por línea. Las dos opciones en las que estaba pensando estaban en la línea de abajo, pero no conozco / entiendo lo suficiente de lo interno de PostgreSQL para tomar una decisión informada que sería lo mejor.
- Ejecute una
DELETE
consulta para cada fila en el archivo, con una simpleWHERE
clave primaria (o agrupe las eliminaciones en lotes paran
usar unaIN()
cláusula) - Importe las claves primarias en una tabla temporal con el
COPY
comando y luego elimínelas de la tabla principal con una combinación
¡Cualquier sugerencia será muy apreciada!