【发布时间】:2018-10-20 13:30:19
【问题描述】:
我有一个字典列表list_dict,如下所示:
[{u'default_bhp': False, u'price_period': u'Monthly'},{u'default_bhp': False, u'price_period': u'Yearly'}]
目前我正在使用以下方法将其插入到我的数据库中:
conn = engine.connect()
conn.execute(ModelClass.__table__.insert(), list_dict)
我只是想检查是否有更快的方法将数据插入数据库,因为我有大量数据。
我们可以在这里使用大量的copy 或其他东西吗?
如何使用use_batch_mode 功能??如下所示:
engine = create_engine('postgresql+psycopg2://postgres:postgres@localhost/test_db', use_batch_mode=True)
conn = engine.connect()
conn.execute_batch(ModelClass.__table__.insert(), list_dict)
【问题讨论】:
-
相关:stackoverflow.com/questions/43317376/…。要么使用
COPY,要么在创建引擎时启用新的use_batch_mode标志,这可能会加速你现有的代码。 -
如何使用
use_batch_mode?我已经更新了我的问题。是否与字典列表一起使用这种方式? -
docs.sqlalchemy.org/en/latest/dialects/…,只需将
use_batch_mode=True传递给create_engine。它将用于 DB-APIexecutemany()调用,您正在执行此操作(在后台)。
标签: python postgresql sqlalchemy