gpt4 book ai didi

java - 如何在不使用太多内存的情况下用 Java 处理大数据集

转载 作者:搜寻专家 更新时间:2023-10-31 08:21:26 25 4
gpt4 key购买 nike

我在 Java 工作。我有一个要求,我必须从本质上比较两个数据库查询。为此,我将结果集的每一行分配给一个哈希表,其中字段名称作为“键”,字段中的数据作为“值”。然后,我将 HashTables 的整个结果集分组到一个 Vector 中,就像一个容器。所以本质上是为了比较两个查询,我实际上是在遍历两个哈希表 vector 。

我发现这种方法对我来说非常有效,但需要大量内存。由于其他设计要求,我必须通过类似 Vector-HashTable 的结构来进行比较,而不是通过一些数据库端过程。

有没有人有任何优化建议?最佳解决方案与我现在正在做的有点相似,因为大部分代码已经围绕它设计。

谢谢

最佳答案

为两个结果集指定相同的 ORDER BY 子句(基于“key”)。然后你只需要一次从每个结果集中有一个记录在内存中。

例如,假设您的结果是 res1res2

如果res1key字段小于res2key字段,则res2 缺少一些记录;迭代 res1 直到它的 key 字段等于或大于 res2key

同样,如果res1key字段大于res2key字段,res1 缺少一些记录;而是迭代 res2

如果当前记录的key字段相等,可以比较它们的值,然后迭代两个结果集。

您可以看到,通过这种方式,在给定时间,每个结果中只需要保存一条记录。

关于java - 如何在不使用太多内存的情况下用 Java 处理大数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560837/

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