我需要将一个大的pandas DataFrame 导入到 PostgreSQL 数据库中。从我所了解的来看,一次性全部导入不是一个好主意(我已经锁定了数据库),而是使用 chunksize
参数。这个答案对于工作流程很有帮助,但我想知道 chunksize 的值是否会影响性能。
In [5]: df.shape
Out[5]: (24594591, 4)
In [6]: df.to_sql('existing_table',
con=engine,
index=False,
if_exists='append',
chunksize=10000)
是否有建议的默认值,设置参数更高或更低时性能有区别吗?假设我有足够的内存支持更大的块大小,那么会执行得更快吗?
read_csv
的,因此并不完全相关。to_sql
的chunksize
对于遇到超时错误时非常有用(请参见http://pandas.pydata.org/pandas-docs/stable/io.html#writing-dataframes 或 https://dev59.com/kmAg5IYBdhLWcg3wE3jQ)。如果您没有遇到这个问题,则不需要使用chunksize
。 - joris