我有一个Dashboard视图,它需要来自整个数据库的表的少量数据集。我优化了数据库查询(例如,删除的子查询)。现在有〜20个查询依次执行,并且从数据库中获取不同的数据集。大多数HQL查询包含GROUP BY
和JOIN
子句。使用Spring REST接口,结果返回到前端。Spring数据查询执行优化:在JpaRepository中并行执行Hibernate @Query方法
如何优化自定义查询的执行?我最初的想法是并行运行数据库查询。但我该如何实现这一目标?在做了一些研究之后,我发现了注释@Async
,它可以并行运行方法。但是这与Hibernate方法一起工作吗?是否总会为每个用JpaRepository中的@Query
注解的方法创建一个新的数据库会话?毕竟,运行数据库查询是否会影响总体执行时间?
并行运行数据库调用的另一种方式是将Dashboard调用拆分为几个单独的Ajax调用(每个关注点都会获得自己的Ajax调用)。我不想这样做,因为每次打开仪表板(或者例如日期范围发生变化)时,都会有20个Ajax调用来获取新数据。同样的问题仍然存在:并行运行SQL查询是否会影响数据库的执行时间?
我目前还没有添加额外的索引到数据库。这将是下一件事,我肯定会做。但是,我对并行运行查询的性能影响以及如何用Spring编程实现这一点感兴趣。
我的项目最初是由jHipster(春季启动,MariaDB的,AngularJS等)产生
谢谢。不幸的是,我太迟不能给你完整的赏金。 –