ホームページ  >  記事  >  データベース  >  Python のexecutemany() メソッドを使用して、MySQL データベースに辞書のリストを効率的に入力するにはどうすればよいですか?

Python のexecutemany() メソッドを使用して、MySQL データベースに辞書のリストを効率的に入力するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 19:32:02249ブラウズ

How can I efficiently populate MySQL databases with lists of dictionaries using Python's executemany() method?

Python で Executemany を使用して MySQL データベースに辞書のリストを効果的に追加する

MySQL データベースに大規模なデータセットを挿入すると、多くの場合、非効率性と潜在的なデータベースの発生につながる可能性がありますロックアップ。ディクショナリのリストとして表現されたデータを操作するときにこの問題に対処するには、executemany() メソッドの利用を検討してください。

ここで示したシナリオでは、元のアプローチではテーブルの各行をデータベースに手動で挿入する必要があります。面倒でエラーが発生しやすくなります。このプロセスを最適化するために、executemany() は 1 回の関数呼び出しで複数の SQL ステートメントを実行する便利な方法を提供します。

executemany() を効果的に使用するには、ディクショナリから値を抽出し、リストを作成してデータを再構築します。タプルの。各タプルはテーブルの行を表し、各列に対応する値が含まれます。

itemBank = []
for row in rows:
    itemBank.append((
        tempRow2['Item_Name'],
        tempRow1['Item_Price'],
        tempRow3['Item_In_Stock'],
        tempRow4['Item_Max'], 
        getTimeExtra
        )) #append data

次に、パラメータ値のプレースホルダーを含む SQL クエリを作成します。パラメータ値は、次のタプルの値に置き換えられます。 executemany() 関数。

q = """ insert ignore into TABLE1 (
        Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) 
        values (%s,%s,%s,%s,%s)           
    """

最後に、変更したデータと SQL クエリを使用してexecutemany() 関数を実行します。

try:
    x.executemany(q, itemBank)
    conn.commit()
except:
    conn.rollback()

このアプローチでは、複数の行を実行することで効率が大幅に向上します。単一の操作で済むため、個々の行の挿入に伴うオーバーヘッドが軽減されます。さらに、より少ないトランザクションに負荷を分散することでデータベースのロックアップの可能性を防ぎます。

executemany() を利用して辞書のリストを MySQL データベースに挿入することで、開発者はデータ挿入プロセスを合理化し、データベースのパフォーマンスを向上させ、パフォーマンスを最小限に抑えることができます。ロックアップの危険性があります。

以上がPython のexecutemany() メソッドを使用して、MySQL データベースに辞書のリストを効率的に入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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