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