我应该采用什么方法进行大量迭代?

时间:2011-08-07 08:44:33

标签: java boost-iterators

我有这个Java webapp(JSP + Struts + Hibernate + MySQL + tomcat6),其中现在有20000个用户,而且这个数字正在迅速增长。我必须定期对所有用户进行排名。排名过程涉及大量对象和休眠动作,而且相当繁重。谈论java,不幸的是我必须迭代所有用户并逐一应用这个过程。这种方法吸收了大量的服务器资源。

另一方面,我可能能够在MySQL端的存储过程中运行所有这些操作。我很确定那里的代码会变得一团糟,以后再修改麻烦。虽然这种方式的性能要好得多,但软件工程原理不会很好地采用这种解决方案。

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这显然在SQL中更有效。真正的问题是你正在使用hibernate,所以失去了对你的架构的控制,这就是为什么像iBatis这样的解决方案虽然不那么受欢迎,但更有意义 - 因为它允许你切换到SQL,因为它是更合适的工具。工作

鉴于您选择了hibernate,您确定无法推送它提供的API吗?您是否详细查看了API标准?这包括关联 - 可能会在那里掏出你想要的东西,因此保持逻辑与班级更紧密地联系在一起。 http://docs.jboss.org/hibernate/stable/core/reference/en-US/html/querycriteria.html