2012-04-18 17 views
0

考虑一个层次结构:设计方法:过程还是带有巨大数据的Java?

品牌 - >产品 - >产品 - >数量。

假设有不同的表格,链接如上所示,有10,000多行。 我想通过以下方式获取所有数据:

品牌 - 与他们 - 产品 - 与他们 - 项目 - 与他们 - 数量。

我想到了这种方法 a)从非常基本的地图中的过程获取所有记录 b)在这些地图上迭代并使用Java链接它们。

由于需要花费很多时间,有没有比这更好的方法?

由于提前

+3

你需要怎样处理结果对象?也许这是有道理的检索数据懒惰或块大块省略加载到内存的整个集合? – ffriend 2012-04-18 13:02:36

+0

数据是否经常变化?如果没有,你可以使用ehcache之类的东西缓存它。我看到ehcache容易处理100,000多个对象,没有任何性能问题。 – Pushkar 2012-04-18 13:04:59

+0

您是否尝试过分析您的解决方案以查看a)或b)需要“很多时间”?然后我们可以讨论如何加快速度。 – mazaneicha 2012-04-18 13:05:17

回答

1

看起来你是加入在关系数据库中的表,所以很自然地用SQL这一点。 Java是错误的工具,你可能会面临许多错误。

如果查询返回的数据过多,请尝试使用LIMIT或按照朋友的建议,向查询添加参数以选择整个结果集的特定块。

如果客户端真的需要一整批,您可以在使用游标完成数据库读取之前开始流式传输响应(我认为它是某种您正在编写的Web服务)。但是这是一个很大的努力,如果你的服务器不能处理数据,那么客户端可能也无法处理。

相关问题