gpt4 book ai didi

Java-将大量数据写入csv

转载 作者:行者123 更新时间:2023-12-01 13:05:16 27 4
gpt4 key购买 nike

我只是想通过使用 supercsv 来写入从 mysql 数据库获取的大量数据到 CSV。我可以多么简单地管理性能问题。 super csv 写入有一些限制吗?

最佳答案

由于您在问题中几乎没有包含有关如何解决问题的详细信息,因此很难提出具体的建议。所以,这是一个一般性的:

除非您将文件写入速度非常慢的介质(某些旧的 USB 内存棒或其他东西),否则过程中最慢的步骤应该是从数据库读取数据。

构建程序的一般方法有两种:

  1. 方式:首先将数据库中的所有数据读取到应用程序的内存中,然后在第二步中将其全部写入 csv 文件。
  2. 正确方式:将数据从数据库“流式传输”到 csv 文件中,即在数据进入您的应用程序时将数据写入 csv 文件(逐条记录或逐批记录) )。

这个想法是建立通常称为“管道”的东西。可以将其想象为工厂中的传送带构造:组装某些小部件的过程中有多个步骤。您不想做的是让工作站 1 处理所有小部件,同时让工作站 2 和 3 闲置,然后将整个小部件容器传递到工作站 2 开始工作,而工作站 1 和 3 闲置,依此类推。相反,站点 1 需要立即将完成的小部件(一次 1 个或一次 10 个左右)发送到站点 2,以便它们可以尽快开始处理。目标是让所有站点始终保持尽可能繁忙。

在您的示例中,站点 1 是 mysql 检索记录,站点 2 是转发(并处理?)记录的应用程序,站点 3 是 supercsv。因此,只需确保 supercsv 能够尽快开始工作,而不必等待 mysql 完成整个请求。

如果你这样做正确,你应该能够像mysql向你扔记录一样快地生成csv文件*,然后,如果它仍然太慢,你需要重新考虑你的数据库后端。

*我还没有使用过 supercsv,所以我不知道它的性能如何,但考虑到它的工作是多么琐碎以及它是多么受欢迎,我会找到它很难相信它最终会在这项任务中表现不如 mysql(以一条记录所需的处理时间来衡量)。但这可能是值得验证的事情......

关于Java-将大量数据写入csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com