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

psycopg2:inserisce più righe con una query

Ho creato un programma che inserisce più righe in un server che si trovava in un'altra città.

Ho scoperto che usare questo metodo era circa 10 volte più veloce di executemany . Nel mio caso tup è una tupla contenente circa 2000 righe. Ci sono voluti circa 10 secondi quando si utilizza questo metodo:

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) 

e 2 minuti quando si utilizza questo metodo:

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