【发布时间】:2019-11-24 12:37:44
【问题描述】:
我目前的单次插入代码是:
def add_item(a_email,a_first,a_last,a_address,a_tag):
query = db.insert(table_items).values(email=a_email,firstname=a_first,lastname=a_last,address=a_address,tag=a_tag)
connection.execute(query)
问题是,我要插入数百万个条目,并且需要很长时间才能逐个完成。例如,一次插入 10 个条目的最佳方法是什么?假设我有一个清单:
my_items = []
my_items.append(["test@test.com","John","Doe","1234 1st Street","Tag1"])
假设我在 my_items 中附加了 10 个项目,我怎样才能一次将它们全部放入我的 Postgres 数据库?
【问题讨论】:
-
您应该考虑使用
COPY而不是插入。 -
一些指针:stackoverflow.com/questions/13125236/…,stackoverflow.com/questions/43317376/…。另一个选项是
use_batch_mode:docs.sqlalchemy.org/en/13/dialects/…,如果使用executemany样式(传递多个值),它将为您处理在一次往返中发出多个插入。
标签: python postgresql sqlalchemy