sql >> Database teknologi >  >> RDS >> PostgreSQL

psycopg2:indsæt flere rækker med én forespørgsel

Jeg byggede et program, der indsætter flere linjer til en server, der var placeret i en anden by.

Jeg fandt ud af, at brugen af ​​denne metode var omkring 10 gange hurtigere end executemany . I mit tilfælde tup er en tupel med omkring 2000 rækker. Det tog omkring 10 sekunder, når du brugte denne metode:

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) 

og 2 minutter, når du bruger denne metode:

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


  1. FEJL:kunne ikke indlæse biblioteket "/opt/PostgreSQL/9.0/lib/postgresql/plperl.so":libperl.so:

  2. Behov for at finde gennemsnitlig behandlingstid mellem alle tidsstempelposter i Oracle SQL

  3. Sådan deaktiveres Change Data Capture (CDC) på en database i SQL Server - SQL Server Tutorial

  4. Databaseskift og failover for Drupal-websteder, der bruger MySQL eller PostgreSQL