sql >> Databasteknik >  >> RDS >> PostgreSQL

psycopg2:infoga flera rader med en fråga

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)


  1. Hur kan jag veta när SQL Full Text Index Population är klar?

  2. Pyodbc - Datakällans namn hittades inte och ingen standarddrivrutin har angetts

  3. Ställ in värde i beroende av rordiagrammet

  4. Byt ut SQL-markörer med alternativ för att undvika prestandaproblem