PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

psycopg2:insira várias linhas com uma consulta


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)