PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

psycopg2:wstaw wiele wierszy za pomocą jednego zapytania

Zbudowałem program, który wstawia wiele linii do serwera znajdującego się w innym mieście.

Dowiedziałem się, że użycie tej metody było około 10 razy szybsze niż executemany . W moim przypadku tup to krotka zawierająca około 2000 wierszy. Przy użyciu tej metody zajęło to około 10 sekund:

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) 

i 2 minuty w przypadku korzystania z tej metody:

cur.executemany("INSERT INTO table VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)", tup)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego Postgres mówi, że kolumna nie istnieje?

  2. Odmowa uprawnień podczas próby importowania pliku CSV z PGAdmin

  3. Iterowanie po liczbach całkowitych [] w PL/pgSQL

  4. Tablice liczb całkowitych Postgres jako parametry?

  5. Nie znaleziono odpowiedniego sterownika dla jdbc:postgresql://192.168.1.8:5432/NexentaSearch