姬長信(Redy)

python – 如何在sqlalchemy中使用psycopg2.extras…


我想将大量条目(~600k)上传到PostgreSQL DB中的一个简单表中,每个条目有一个外键,一个时间戳和3个浮点数.但是,每个条目需要60 ms才能执行here所述的核心批量插入,因此整个执行需要10小时.我发现,这是executemany()方法的性能问题,但它已经在psycopg2 2.7中使用execute_values()方法解决了.

我运行的代码如下:

#build a huge list of dicts, one dict for each entry
engine.execute(SimpleTable.__table__.insert(),
               values) # around 600k dicts in a list

我发现这是一个常见问题,但是我还没有找到sqlalchemy本身的解决方案.有没有办法告诉sqlalchemy在某些情况下调用execute_values()?有没有其他方法可以实现大型插入而无需自己构建SQL语句?

谢谢您的帮助!