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

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

DDD
リリース: 2024-11-26 04:09:09
オリジナル
971 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート