ホームページ >バックエンド開発 >Python チュートリアル >psycopg2 を使用してデータベースに複数の行を効率的に挿入するにはどうすればよいですか?

psycopg2 を使用してデータベースに複数の行を効率的に挿入するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 04:09:09973ブラウズ

How Can I Efficiently Insert Multiple Rows into a Database Using psycopg2?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。