Comment puis-je insérer efficacement plusieurs lignes dans une base de données à l'aide de psycopg2 ?

DDD
Libérer: 2024-11-26 04:09:09
original
945 Les gens l'ont consulté

How Can I Efficiently Insert Multiple Rows into a Database Using psycopg2?

Insertion efficace de plusieurs lignes avec psycopg2

Lors de la gestion des insertions groupées dans une base de données, il devient essentiel d'optimiser les performances. Bien que psycopg2 propose la méthodeexecutemany pour cette tâche, il existe une approche légèrement plus simple et souvent plus rapide.

Cette approche implique l'utilisation de la fonction mogrify() et la concaténation des instructions SQL générées en une seule requête. Elle nécessite la création d'un tuple contenant les données à insérer. Prenons un exemple :

args = [(1, 2), (3, 4), (5, 6)]
args_str = ','.join(cursor.mogrify("(%s,%s)", (x, )) for x in args)
cursor.execute("INSERT INTO t (a, b) VALUES " + args_str)
Copier après la connexion

Il a été démontré empiriquement que cette méthode améliore considérablement les performances, en particulier pour les gros lots de données. Dans un cas, il n'a fallu que 10 secondes pour insérer 2 000 lignes à l'aide de cette méthode, contre 2 minutes avec executemany.

En utilisant cette technique, les développeurs peuvent réaliser des insertions groupées plus rapides avec psycopg2, optimisant ainsi les opérations d'écriture dans la base de données.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal