PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Problèmes de performances d'insertion en masse PostgreSQL/JooQ lors du chargement à partir de CSV ; comment puis-je améliorer le processus ?

Le moyen le plus rapide d'effectuer une insertion en masse à partir d'un fichier CSV dans PostgreSQL est avec Copier . La commande COPY est optimisée pour insérer un grand nombre de lignes.

Avec Java, vous pouvez utiliser la Implémentation de copie pour le pilote PostgreSQL JDBC

Il y a un joli petit exemple de comment l'utiliser ici :comment copier une donnée d'un fichier vers PostgreSQL en utilisant JDBC ?

Si vous avez un CSV avec des en-têtes, vous voudrez exécuter une commande similaire à celle-ci :

\COPY mytable FROM '/tmp/mydata.csv' DELIMITER ';' CSV HEADER

Une autre amélioration des performances lorsque vous ajoutez de grandes quantités de données à une table existante consiste à supprimer les index, à insérer les données, puis à recréer les index.