提高javaweb应用程序的性能

提高javaweb应用程序的性能,java,web-applications,Java,Web Applications,我正在使用具有以下技术堆栈的3层web应用程序: 爪哇EE Servlet 3.0 JSP 2.4 春季3.0 MySQL数据库 TomcatWeb服务器 我们使用Mozilla Firefox浏览器启动此应用程序。我的问题是,当数据库中有大量数据时,应用程序面临性能问题 我们有大约10个JSP,而每个JSP都与数据库中的特定表相关。问题发生在加载表中包含大量数据的特定JSP时。登录到应用程序也会遇到性能问题,而且显示主页也需要很长时间 我需要这个应用程序以最佳性能工作。我们不想因为性能问题

我正在使用具有以下技术堆栈的3层web应用程序:

  • 爪哇EE
  • Servlet 3.0
  • JSP 2.4
  • 春季3.0
  • MySQL数据库
  • TomcatWeb服务器
我们使用Mozilla Firefox浏览器启动此应用程序。我的问题是,当数据库中有大量数据时,应用程序面临性能问题

我们有大约10个JSP,而每个JSP都与数据库中的特定表相关。问题发生在加载表中包含大量数据的特定JSP时。登录到应用程序也会遇到性能问题,而且显示主页也需要很长时间

我需要这个应用程序以最佳性能工作。我们不想因为性能问题而失去有价值的客户。我不知道瓶颈在哪里,以及如何调整我的应用程序的性能。

一些建议:

  • 确保使用数据库连接池,而不是手动打开连接
  • 确保连接在尽可能狭窄的范围内。这意味着,决不作为类或更高级别中的字段
  • 调整数据库:根据查询在表中应用索引,对表进行分区,调整表的统计信息,等等
  • 调整查询:编写查询以跟踪表中的索引,使用
    EXPLAIN
    检查查询是否使用索引条件或线性搜索,在查询中不使用子查询,等等
  • 使用分页显示表格。最好在开始时使用较小的页面,如单个视图中每个表的10或15行(或应用程序中的另一个定义值)。最大大小将取决于您显示的内容。显示视频缩略图与仅显示纯文本不同。此外,它还有助于了解列的数量及其内容,显示250行两列的纯数字与显示包含多个列的报告不同
除了以下几点,还可以使用诸如Visual VM或Java Mission Control或Yourkit之类的探查器来发现应用程序上的瓶颈。

一些建议:

  • 确保使用数据库连接池,而不是手动打开连接
  • 确保连接在尽可能狭窄的范围内。这意味着,决不作为类或更高级别中的字段
  • 调整数据库:根据查询在表中应用索引,对表进行分区,调整表的统计信息,等等
  • 调整查询:编写查询以跟踪表中的索引,使用
    EXPLAIN
    检查查询是否使用索引条件或线性搜索,在查询中不使用子查询,等等
  • 使用分页显示表格。最好在开始时使用较小的页面,如单个视图中每个表的10或15行(或应用程序中的另一个定义值)。最大大小将取决于您显示的内容。显示视频缩略图与仅显示纯文本不同。此外,它还有助于了解列的数量及其内容,显示250行两列的纯数字与显示包含多个列的报告不同

除此之外,还可以使用诸如Visual VM或Java Mission Control或Yourkit之类的探查器来发现应用程序上的瓶颈。

这不是一个真正的答案,但它是一个很好的建议,因此对您来说+1:)虽然说每页最多100条记录有点具体,我敢肯定,如果只有两列可以显示,250也可以很好地快速工作。关键是要应用分页。@Gimby很抱歉更新太晚。这不是一个真正的答案,但它是一个很好的建议,所以对你来说+1:)虽然说每页最多100条记录有点具体,但我相信如果只有2列要显示,250条记录也能很好地快速工作。关键是要应用分页。@Gimby很抱歉更新太晚。