Creé un programa que inserta varias líneas en un servidor que estaba ubicado en otra ciudad.
Descubrí que usar este método era unas 10 veces más rápido que executemany
. En mi caso tup
es una tupla que contiene alrededor de 2000 filas. Tomó alrededor de 10 segundos al 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)
y 2 minutos al usar este método:
cur.executemany("INSERT INTO table VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)", tup)