0

我得到了这个 Java webapp(JSP+Struts+Hibernate+MySQL+tomcat6),现在有大约 20000 个用户,而且这个数字还在迅速增长。我必须定期对所有用户进行排名。排名过程涉及大量对象和休眠动作,而且相当繁重。说到java,不幸的是我必须迭代所有的用户,并在他们身上一一应用这个过程。这种方法会消耗大量服务器资源。

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

你有什么建议?

4

1 回答 1

1

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

鉴于您选择了休眠,您确定不能将它提供的 API 推送到执行此操作吗?您是否详细查看过标准 API?这包括关联 - 可能会在其中塞入您想要的东西,从而使逻辑与类更紧密地关联。 http://docs.jboss.org/hibernate/stable/core/reference/en-US/html/querycriteria.html

于 2011-08-07T09:30:40.160 回答