SQLAlchemy ORM による一括挿入
一括挿入は、1 回の操作でデータベースに複数のレコードを効率的に挿入するために使用される手法です。一括挿入により、個々のレコードを一度に 1 つずつ挿入する場合と比較して、データ転送のパフォーマンスを大幅に向上させることができます。
SQLAlchemy の最新バージョン (1.0.0 以降) では、一括挿入のための便利な方法と呼ばれる方法が提供されています。 Bulk_save_objects()。このメソッドを使用すると、単一のトランザクションでオブジェクトのリストをデータベースに挿入できます。
たとえば、ユーザーを表すオブジェクトのリストがあるとします。
objects = [ User(name="u1"), User(name="u2"), User(name="u3") ]
Bulk_save_objects() メソッドを使用して、これらのオブジェクトをデータベースに挿入します。
s = Session() s.bulk_save_objects(objects) s.commit()
一括挿入メソッドを使用すると、複数の挿入を効果的に統合できます。ステートメントを 1 つの操作にまとめ、個々の挿入に関連するオーバーヘッドを削減します。これにより、特に大規模なデータセットの場合、パフォーマンスが大幅に向上する可能性があります。
さらに、セッションの使用を最適化すると、パフォーマンスがさらに向上します。 autoCommit=False を設定すると、1 つのトランザクション内で複数の操作を実行できるため、データベースとのやり取りの数が減ります。ただし、トランザクション中にデータベースが外部で変更された場合、データが古いという問題が発生する可能性があることに注意してください。これを軽減するには、refresh() メソッドを使用してデータベースから最新のデータを取得することを検討してください。
以上がSQLAlchemy の `bulk_save_objects()` メソッドはデータ挿入パフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。