Je me demande quel serait le moyen le plus efficace de supprimer un grand nombre de lignes de PostgreSQL, ce processus ferait partie d'une tâche récurrente chaque jour pour importer en masse des données (un delta d'insertions + suppressions) dans une table. Il pourrait y avoir des milliers, voire des millions de lignes à supprimer.
J'ai un fichier de clés primaires, un par ligne. Les deux options auxquelles je pensais étaient dans le sens de ce qui suit, mais je ne connais pas / ne comprends pas suffisamment les internes de PostgreSQL pour prendre une décision éclairée qui serait la meilleure.
- Exécutez une
DELETE
requête pour chaque ligne du fichier, avec une simpleWHERE
clé primaire (ou regroupez les suppressions par lots enn
utilisant uneIN()
clause) - Importez les clés primaires dans une table temporaire à l'aide de la
COPY
commande, puis supprimez-les de la table principale à l'aide d'une jointure
Toutes les suggestions seront très appréciées!