sql >> Database teknologi >  >> RDS >> PostgreSQL

psycopg2 svarende til R dbWriteTable-kommandoen og få mere ydeevne fra python-kode

Prøv dette:

    id2 = csv.reader(open(os.path.join(perf_dir,id_files[1])))
    h = tuple(next(id2))

    create = '''CREATE TABLE id2 (%s varchar, %s int PRIMARY KEY, %s int)''' % h
    insert = '''INSERT INTO id2 (%s, %s, %s) VALUES (%%s, %%s, %%s)''' % h

    ...

    cr.executemany(insert, id2)

Send sql-kommandoen kun én gang for alle rækkerne. Ud over ydelsesomkostningerne ved at udstede yderligere sql-kommandoer, skal du bemærke, at størrelsen af ​​selve sql-strengen (i bytes) sandsynligvis dværger størrelsen af ​​de reelle data, der testes.

Brug af id2 som en generator uden arrayet bør også undgå at indlæse hele datasættet i hukommelsen.




  1. PHP kan ikke oprette forbindelse til PostgreSQL på CentOS 7

  2. MySQL ELLER MATCH hænger (meget langsomt) på flere borde

  3. Forskellen mellem sys.views, sys.system_views og sys.all_views i SQL Server

  4. Slet data fra alle tabeller i MYSQL