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