sql >> Database >  >> RDS >> PostgreSQL

psycopg2:voeg meerdere rijen in met één query

Ik heb een programma gebouwd dat meerdere regels invoegt op een server die zich in een andere stad bevond.

Ik ontdekte dat het gebruik van deze methode ongeveer 10 keer sneller was dan executemany . In mijn geval tup is een tupel met ongeveer 2000 rijen. Het duurde ongeveer 10 seconden bij het gebruik van deze methode:

args_str = ','.join(cur.mogrify("(%s,%s,%s,%s,%s,%s,%s,%s,%s)", x) for x in tup)
cur.execute("INSERT INTO table VALUES " + args_str) 

en 2 minuten bij gebruik van deze methode:

cur.executemany("INSERT INTO table VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)", tup)


  1. Hoe om te gaan met een enkele aanhalingsteken in Oracle SQL

  2. Hoe je het beste iemands 'rang' kunt krijgen uit een scoretabel met php en mysql zonder looping

  3. PostgreSQL implementeren voor hoge beschikbaarheid

  4. Migratie automatiseren van standalone MySQL naar Galera Cluster met Ansible