我有一個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等)產生
謝謝。不幸的是,我太遲不能給你完整的賞金。 –