Maison > base de données > tutoriel mysql > Comment puis-je optimiser les insertions en masse dans PostgreSQL pour accélérer le remplissage de la base de données ?

Comment puis-je optimiser les insertions en masse dans PostgreSQL pour accélérer le remplissage de la base de données ?

Mary-Kate Olsen
Libérer: 2025-01-16 15:15:09
original
441 Les gens l'ont consulté

How Can I Optimize Bulk Inserts in PostgreSQL for Faster Database Population?

Accélération du remplissage de la base de données Postgres avec des insertions groupées

Remplir une base de données Postgres avec un grand ensemble de données nécessite des méthodes efficaces. Les déclarations INSERT individuelles sont lentes pour les opérations groupées. Postgres propose une solution supérieure : la commande COPY.

La commande COPY charge directement les données d'un fichier ou d'un stdin dans une table, en contournant l'analyseur de requête standard pour une insertion considérablement plus rapide.

Utilisation de la commande COPY pour le chargement groupé de données :

  1. Préparez un fichier texte contenant vos données.

  2. Exécutez la commande COPY dans votre terminal Postgres en utilisant cette syntaxe :

    <code class="language-sql">COPY table_name (column1, column2, ...) FROM '/path/to/data.txt' DELIMITER ',' CSV HEADER;</code>
    Copier après la connexion
  3. Remplacez les espaces réservés : table_name par le nom de votre table, /path/to/data.txt par le chemin absolu du fichier.

  4. Ajustez DELIMITER et CSV HEADER selon la structure de vos données.

Autres améliorations des performances :

Au-delà de COPY, ces stratégies optimisent davantage les insertions en masse :

  • Désactiver temporairement les contraintes : Supprimez les index et les contraintes de clé étrangère avant le chargement. Réactivez-les ensuite. Cela réduit considérablement les frais généraux.
  • Optimisez les paramètres Postgres : Ajustez work_mem et maintenance_work_mem pour fournir suffisamment de mémoire pour le processus d'importation.
  • Traitement parallèle : Divisez vos données en plusieurs fichiers et utilisez des commandes COPY simultanées pour le chargement parallèle. Cela exploite les processeurs multicœurs pour une vitesse maximale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal