性能:Java 与数据库

Sve*_*ven 3 java performance web-applications

编程时总是需要做出一些决定,例如:

  • 我应该从数据库条目动态生成菜单/按钮/导航还是通过代码静态生成
  • 我应该通过 Java 对列表的条目进行计数还是触发数据库查询..或者也许您会发现更多这些数据库与 Javacode 的问题。

(我希望这个问题不太常见:)

关于 Web 应用程序中的性能问题,您的数据库应该做什么以及您的 Java 代码可以更好地完成哪些练习。

也许小型项目和大型项目之间的差异是合理的

Pét*_*rök 5

稍微扩展一下 Ignacio 的答案:数据库通常有很大的延迟(除非它物理上位于同一台机器上),因此您希望尽可能少地访问它。如果您使用像 Hibernate 这样的 ORM,您可以免费获得缓存和延迟加载;否则你需要自己处理这些。

因此,可以从数据库中获取一次GUI 元素数据,然后在本地缓存并重用它。如果您已经拥有所有元素,最好在本地计算列表的条目数。如果您无论如何都需要查询,可以尝试将这些提取合并为一个。但是,如果您有一个巨大的列表,并且想要从中选择相对较少的元素,那么最好让数据库完成工作并仅返回选定的条目,而不是通过慢速网络塞入大量数据联系。