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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-07 16:30:031012ブラウズ

How Can I Efficiently Insert Multiple Dictionaries into a MySQL Database Using Python's `executemany()` Method?

Python でのexecutemany() を使用した MySQL への複数の辞書の挿入

Web からデータをスクレイピングして MySQL データベースに挿入すると、データベースのロックアップを回避するためにパフォーマンスを最適化するために重要です。提供されたコードは、テーブル データの行ごとに個別のクエリを実行するという非効率なアプローチを示しています。この問題に対処するために、executemany() メソッドを利用して複数の行を同時に挿入する方法を検討します。

executemany() メソッドを使用すると、準備されたステートメントにパラメーターのリストを挿入できます。 SQL ステートメントとパラメーターのリストという 2 つの引数を取ります。 SQL ステートメントにはパラメーターのプレースホルダー (%s) が必要です。

このシナリオで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 ステートメントを準備します。

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

最後に、executemany() メソッドを実行して、 SQL ステートメントとパラメーターのリスト:

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

このアプローチでは、テーブル内のすべての行に対して単一のクエリを実行し、複数の個別のクエリのオーバーヘッドを回避することで、パフォーマンスが大幅に向上します。

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

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