sql >> データベース >  >> RDS >> PostgreSQL

R dbWriteTableコマンドと同等のpsycopg2であり、Pythonコードからより多くのパフォーマンスを得る

    これを試してください:

        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)
    

    すべての行に対して1回だけsqlコマンドを渡します。追加のSQLコマンドを発行することによるパフォーマンスのオーバーヘッドに加えて、SQL文字列自体のサイズ(バイト単位)が、テスト対象の実際のデータのサイズよりも小さい可能性があることに注意してください。

    配列なしでid2をジェネレーターとして使用すると、データセット全体をメモリにロードすることも回避できます。




    1. あなたのデータベースがもはやあなたのために働いていないことの兆候

    2. in句の値がSQLクエリで多すぎますか?

    3. 別のスキーマのテーブルを使用してストアドプロシージャを作成するにはどうすればよいですか?

    4. PHP/MySQLセットアップをミラーリングする正しい方法