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)