Массовое создание в SQLAlchemy: эффективные методы массовой вставки данных

В SQLAlchemy операция массового создания позволяет эффективно вставлять несколько записей в таблицу базы данных за один раз. Этот подход особенно полезен при работе с большими наборами данных, поскольку он минимизирует накладные расходы, связанные с отдельными операторами вставки. В этой статье блога мы рассмотрим несколько методов выполнения операций массового создания в SQLAlchemy с примерами кода.

Метод 1. Использование оператора insert()с execute()

from sqlalchemy import insert
from sqlalchemy.orm import sessionmaker
# Create a session
Session = sessionmaker(bind=engine)
session = Session()
# Define the table and data
table = MyTable.__table__
data = [{'column1': 'value1', 'column2': 'value2'}, {'column1': 'value3', 'column2': 'value4'}]
# Create the insert statement
stmt = insert(table).values(data)
# Execute the bulk insert
session.execute(stmt)
# Commit the transaction
session.commit()

Метод 2: использование метода bulk_insert_mappings()

from sqlalchemy.orm import sessionmaker
# Create a session
Session = sessionmaker(bind=engine)
session = Session()
# Define the table and data
table = MyTable.__table__
data = [{'column1': 'value1', 'column2': 'value2'}, {'column1': 'value3', 'column2': 'value4'}]
# Perform the bulk insert
session.bulk_insert_mappings(table, data)
# Commit the transaction
session.commit()

Метод 3: использование метода execute()с несколькими операторами insert()

from sqlalchemy import insert
from sqlalchemy.orm import sessionmaker
# Create a session
Session = sessionmaker(bind=engine)
session = Session()
# Define the table and data
table = MyTable.__table__
data = [{'column1': 'value1', 'column2': 'value2'}, {'column1': 'value3', 'column2': 'value4'}]
# Create and execute multiple insert statements
for row in data:
    stmt = insert(table).values(row)
    session.execute(stmt)
# Commit the transaction
session.commit()

Выполнение операций массового создания в SQLAlchemy может значительно повысить эффективность вставки данных в базу данных. В этой статье мы рассмотрели три метода: использование оператора insert()с execute(), использование метода bulk_insert_mappings()и использование execute()метод с несколькими операторами insert(). В зависимости от вашего конкретного варианта использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям, и добиться более быстрой вставки данных в SQLAlchemy.