psycopg2 による複数行の効率的な挿入
データベースへの一括挿入を処理する場合、パフォーマンスを最適化することが不可欠になります。 psycopg2 は、このタスク用にexecutemany メソッドを提供しますが、もう少し単純で、多くの場合高速なアプローチが存在します。
このアプローチには、mogrify() 関数を利用し、生成された SQL ステートメントを 1 つのクエリに連結することが含まれます。挿入するデータを含むタプルを作成する必要があります。例を考えてみましょう:
args = [(1, 2), (3, 4), (5, 6)] args_str = ','.join(cursor.mogrify("(%s,%s)", (x, )) for x in args) cursor.execute("INSERT INTO t (a, b) VALUES " + args_str)
この方法は、特に大規模なデータ バッチのパフォーマンスを大幅に向上させることが経験的に示されています。ある例では、executemany を使用した場合は 2 分でしたが、このメソッドを使用すると 2,000 行を挿入するのに 10 秒しかかかりませんでした。
この手法を利用することで、開発者は psycopg2 でより高速な一括挿入を実現し、それによってデータベース書き込み操作を最適化できます。
以上がpsycopg2 を使用してデータベースに複数の行を効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。