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)
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!