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

psycopg2:1つのクエリで複数の行を挿入

    別の都市にあるサーバーに複数の行を挿入するプログラムを作成しました。

    この方法を使用すると、executemanyよりも約10倍高速であることがわかりました。 。私の場合、tup は約2000行を含むタプルです。この方法を使用した場合、約10秒かかりました:

    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) 
    

    この方法を使用する場合は2分:

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


    1. 外部サーバーに参加/プッシュダウンする前にサブクエリの評価を強制する方法

    2. MySQLでOFFSETを指定してLIMITを使用すると、どの行が返されますか?

    3. CONVERT_TZ –クエリでMySQLタイムゾーンを変更する方法

    4. 'where value in ...'句でパラメータを使用する方法は?