sql >> Databáze >  >> RDS >> PostgreSQL

psycopg2 ekvivalentní příkazu R dbWriteTable a získání vyššího výkonu z kódu pythonu

Zkuste toto:

    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)

Předejte příkaz sql pouze jednou pro všechny řádky. Kromě režie výkonu při vydávání dalších příkazů SQL si všimněte, že velikost samotného řetězce SQL (v bajtech) pravděpodobně převyšuje velikost skutečných testovaných dat.

Použití id2 jako generátoru bez pole by také mělo zabránit načtení celé datové sady do paměti.




  1. Jak obnovit/znovu vytvořit výchozí databázi 'mysql' mysql

  2. Jak přistupovat k systémovým tabulkám Oracle z funkce nebo procedury PL/SQL?

  3. Spojte dva mysql dotazy do jednoho

  4. Sledování výkonu pro TimescaleDB