求助python下高效且支持大数据量的database2excel方案

发布于 2022-09-04 23:15:51 字数 455 浏览 17 评论 0

大家好。小弟目前需要一个速度较好,且支持大数据量的数据库导出至excel(xlsx)的方案
小弟的机器配置不高,4核的CPU,可用内存在8G左右(不过是虚拟机,可能性能实际还要低一点)
小弟之前尝试过以下几种方案
openpyxl:大数据量情况下经常会吃光内存。实验生成100W条/每条6个字段的数据,经常会把小弟这8G内存吃满。生成excel时间大概在10分钟~11分钟左右
pyexcel_xlsx:貌似这部分引用的还是openpyxl的东东…不过貌似有一定的优化,生成生成100W条/每条6个字段的数据,消耗内存近3G,时间在8分半左右

这两个方案效率都非常低,而且小弟目前都没有找到中途将内存写入文件的方法…

请各位大大指点,是否还有其他的方案,最好是能够控制单次写入条数,例如每写入5W条,进行一次提交,将内存的东东写在文件中并释放内存,再继续写入这样的。(这样也许可以考虑配合多线程来进行并行写入,加快效率…)
谢谢各位了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倚栏听风 2022-09-11 23:15:51

自己找到了方法…openpyxl中有write_only选项,可以大幅度减少占用内存,生成速度也更快

壹場煙雨 2022-09-11 23:15:51

pandas有分块读取的功能,关键词chunksize
df = pd.read_csv("xxxx",chunksize=10000)
可以去研究下文档:http://pandas.pydata.org/pand...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文