Construí um programa que insere várias linhas em um servidor localizado em outra cidade.
Descobri que usar esse método era cerca de 10 vezes mais rápido que
executemany
. No meu caso tup
é uma tupla contendo cerca de 2.000 linhas. Demorou cerca de 10 segundos ao usar este método: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 minutos ao usar este método:
cur.executemany("INSERT INTO table VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)", tup)