Jag byggde ett program som infogar flera rader till en server som fanns i en annan stad.
Jag fick reda på att det var ungefär 10 gånger snabbare att använda den här metoden än executemany
. I mitt fall tup
är en tupel som innehåller cirka 2000 rader. Det tog cirka 10 sekunder när du använde den här metoden:
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)
och 2 minuter när du använder den här metoden:
cur.executemany("INSERT INTO table VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)", tup)