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)