sql >> Base de Datos >  >> RDS >> PostgreSQL

psycopg2:inserta varias filas con una consulta

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)