Impact des index existants sur les performances de COPY FROM

indexing postgresql sqlbulkcopy

Question

Après avoir lu le document de référence PostgreSQL sur COPY , je n’ai pas trouvé comment COPY traite les index. Que se passe-t-il exactement lors de la copie de données d'un fichier dans une table lorsque celle-ci contient déjà des index? Je me demande si ces index seront détruits automatiquement d’abord puis recréés après le chargement ou non?

Réponse acceptée

Une autre page du manuel intitulée Remplir une base de données traite de cette question. Son conseil:

Si vous chargez une table fraîchement créée, la méthode la plus rapide consiste à créer la table, à charger en bloc les données de la table à l'aide de COPY , puis à créer les index nécessaires à la table. La création d'un index sur des données préexistantes est plus rapide que sa mise à jour incrémentielle au fur et à mesure que chaque ligne est chargée.

Tout est clair, non? Mais lisez la page, il y a probablement plus pour vous.


Réponse populaire

COPY ne fait actuellement rien de spécial avec les index.

Si vous devez insérer dans une table indexée, la différence de performance entre COPY et un INSERT en lot est minime.

Donc, si vous ne pouvez pas supprimer les index, utilisez simplement la commande la plus pratique compte tenu du format actuel des données.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi