Java 如何使用DB查询提高应用程序的性能?

Java 如何使用DB查询提高应用程序的性能?,java,mysql,database,performance,Java,Mysql,Database,Performance,我是一个数据库人,我有一个基于Java的web应用程序 它运行缓慢,开发人员向我报告,由于只有DB,它运行缓慢。他们要求进行查询调优 我试图调整查询,但没有获得多少性能 当我尝试在浏览器中运行查询时,它工作正常,但在应用程序中运行缓慢 请就如何解决这个问题给我一些建议。以下是我将如何解决这个问题: 让开发人员选择一个运行缓慢的用例,并让他们向您描述它。他们还应该提到作为用例一部分运行的所有查询,包括参数 当您直接从SQL工具而不是应用程序针对数据库运行查询结果时,向他们显示查询结果。确保使用相

我是一个数据库人,我有一个基于Java的web应用程序

它运行缓慢,开发人员向我报告,由于只有DB,它运行缓慢。他们要求进行查询调优

我试图调整查询,但没有获得多少性能

当我尝试在浏览器中运行查询时,它工作正常,但在应用程序中运行缓慢


请就如何解决这个问题给我一些建议。

以下是我将如何解决这个问题:

  • 让开发人员选择一个运行缓慢的用例,并让他们向您描述它。他们还应该提到作为用例一部分运行的所有查询,包括参数
  • 当您直接从SQL工具而不是应用程序针对数据库运行查询结果时,向他们显示查询结果。确保使用相同的数据库实例和相同的数据量
  • 如果时间相差很大,请开发人员使用Java探查器(例如YourKit或visualVM)来确定时间花在哪里。这应该可以很容易地看到瓶颈
  • 当应用程序运行缓慢时,请注意上下文。是针对单个用户,还是当多个用户正在执行相同的用例时
  • 大多数数据库也编写日志文件,概述查询性能并突出显示有问题的查询。Oracle的AWR文件就是一个例子,也许MySQL也有类似的功能

基本上,试着与开发人员合作,而不是反对他们。向他们解释您是如何优化查询的,并让他们向您展示他们是如何尝试优化应用程序的。这个方法对我来说总是有效的。

你应该考虑问具体的问题/问题,并提供一些细节来理解这个问题。一般化的工作特定问题不会得到你的回应。我不知道问题出在哪里,他们只是责怪查询。“请给我建议”-概述应用程序,或者让开发人员来做。如果他们责怪查询,让他们向你展示证据。分析器将精确显示应用程序的哪个部分花费了多少时间。感谢您的简要解释。