使用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 samehelpfuladvice在邮件列表中。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何从包含多个java源文件的包中动态执行多个类的函数?   java GSON不解析布尔值(始终为false)   链表Java LinkedList:如何将内容插入特定索引?   java当only equals被重写时,为什么列表会将项查找为true?   java语言与泛型   java编译器消息文件已损坏:key=compiler。杂项。味精。错误参数=   Java Web启动(FailedDownloadException)   java Playframework在select中获取对象列表作为选项   如何通过java代码将CSV文件数据导入PostgreSQL表?   java HazelcastInstance vs HazelcastClient   java使用HorizontalCalendar库(MulhamRaee/HorizontalCalendar)日历获取dd/mm/yyyy格式的日期   java nio路径无法处理windows网络路径   java将JavaScript文件放在Android Studio项目的何处?   java Powermock模拟静态类成员   java通过REST传递pdf数据   在Java中解析JavaScript日期字符串