【问题标题】:Optimal chunksize parameter in pandas.DataFrame.to_sqlpandas.DataFrame.to_sql 中的最佳块大小参数
【发布时间】:2016-05-14 04:20:11
【问题描述】:

使用需要转储到 PostgreSQL 表中的大型 pandas DataFrame。从我读过的内容来看,一次转储并不是一个好主意,(而且我正在锁定数据库)而不是使用chunksize 参数。答案here 对工作流程很有帮助,但我只是询问影响性能的块大小的值。

In [5]: df.shape
Out[5]: (24594591, 4)

In [6]: df.to_sql('existing_table',
                  con=engine, 
                  index=False, 
                  if_exists='append', 
                  chunksize=10000)

是否有推荐的默认值,将参数设置得更高或更低时性能是否有差异?假设我有内存来支持更大的块大小,它会执行得更快吗?

【问题讨论】:

标签: python postgresql pandas


【解决方案1】:

在我的例子中,当我使用 pandas to_sql 函数参数作为 chunksize=5000 和 method='multi' 时,在 8 分钟内插入了 3M 行 5 列。这是一个巨大的改进,因为使用 python 将 3M 行插入数据库对我来说变得非常困难。

【讨论】:

    【解决方案2】:

    我尝试了相反的方法。从 sql 到 csv,我注意到块越小,工作完成得越快。向作业(多处理)添加额外的 CPU 并没有改变任何东西。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 2014-09-02
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2016-05-16
    • 1970-01-01
    相关资源
    最近更新 更多