是否有任何方法可以提高Python中的to_sql性能?



我有一个循环,遍历目录上的每个文件(xlsx和csv),读取它们,附加它们并将其连接到list中。这个列表是他们发送到数据库的。它是有效的,但是当它涉及到更大的文件时,它可能会花费很多时间。我认为这是我需要改进代码的部分:

xls.to_sql(table, con=engine, if_exists='append', index=False)

我一直在测试不同的块大小,但是当有各种文件的大小时,我如何选择最佳的块大小?

我也一直在研究并行化,想知道是否有人可以帮助我找出如何改进它。

编辑:顺便说一下,我也遵循了这篇博文来改善我与数据库的连接。我注意到它的性能有了很大的提高。但是to_sql仍然缺乏性能。 https://towardsdatascience.com/dramatically-improve-your-database-inserts-with-a-simple-upgrade-6dfa672f1424

这是我们在项目中所做的:

chunk_size = 2100 // len(df.columns) - 1

to_sql中也使用了method = 'multi'。这对我们来说很好。method = 'multi'的速度相当快,因为它一次需要多个插入语句。

相关内容

最新更新