获取比较记录:逐个或一次进行?

时间:2012-12-21 22:55:50

标签: sql database hibernate data-access-layer dao

我有一个产品清单,我必须将清单中的每个产品与数据库中存在的原始产品进行比较。哪个会是正确的方式?

  • 从db获取所有记录(保留在arraylist中),比较每个记录,更新

  • 从db获取一个,比较它,更新,下一个

db模式中有很多连接,因此第二种方式似乎不合适。另一方面,产品表包含超过5000条记录,我怀疑在内存中保留所有这些记录(可以通过某些查询减少到500条记录)。

2 个答案:

答案 0 :(得分:1)

就数据库而言,5000个结果很小。我会拉出所有记录并在记忆中对它们采取行动。这在数据库和应用服务器上都要轻得多。

答案 1 :(得分:1)

最好的方法是介于两个选项之间:

在一个查询中获取从数据库返回的所有行,但在读取时处理每一行,以便一次只有一个产品在内存中。

这种方法是完全可扩展的。