使用psycopg2在PostgreSQL上批量插入SQLAlchemy
sqlalchemy-batch-inserts的Python项目详细描述
Benchling使用SQLAlchemy和psycopg2与PostgreSQL交谈。 为了节省往返延迟,我们使用以下代码对插入进行批处理。在
通常,如果模型有一个自动递增的主键,在SQLAlchemy中创建和刷新N个模型会往返N次数据库。 这个模块改进了N个模型的创建,只需要2次往返,而不需要对代码进行任何其他更改。在
这是给我的吗?在
如果出现以下情况,您可以使用此模块:
- 您正在使用SQLAlchemy
- 你在用博士后
- 有时您需要同时创建多个模型并关心性能
使用
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_batch_inserts import enable_batch_inserting
engine = create_engine("postgresql+psycopg2://postgres@localhost", executemany_mode="values") # SQLAlchemy < 1.3.7 needs use_batch_mode=True instead
Session = sessionmaker(bind=engine)
session = Session()
enable_batch_inserting(session)
如果使用Flask-SQLALchemy
^{pr2}$致谢
这一切都归功于@dvarrazzo的psycopg2execute_batch 还有@zzzeek的sql炼金术support for the same 和helpfuladvice在邮件列表中。在
- 项目
标签: