使用多线程程序通过java从数据库中读取大量数据集

时间:2014-09-25 09:49:49

标签: java

在我的项目中,我正在生成报告。这涉及来自数据库的大量数据传输。

逻辑就像用户会给出一定的标准,首先我们将从db中获取父项。可能有100000个父项。不仅仅是在获取这些项目之后我们正在收集这些父项的子项目详细细节。所有收集我们在一个响应xml中的父和子信息。

小记录很好。但是对于巨大的记录,它需要更多的时间。我们使用一个工具作为后端系统。它存储记录。它有自己的查询集,因此查询优化不起作用。我们必须用java做。

团队中的任何人都可以了解如何优化这一点。

1 个答案:

答案 0 :(得分:0)

不是真正的答案,但评论时间太长

您必须基准不同的步骤:

  1. 数据库 - 选择直接在数据库中提取所有记录(父项+子项)的时间(假设它是一个简单的数据库)
  2. network - 计算整个记录的大致传输时间。
  3. 处理 - 将结果存储在本地文件中,并从本地文件中读取处理时间(您还必须计算文件副本以了解从磁盘读取的时间
  4. 多线程只有在瓶颈处理时才有用。