簡體   English   中英

優化Spring Boot JPA查詢

[英]optimizing Spring Boot JPA query

我是Jpa的新手。 我有一個列表列表,其中包含大約10000-50000個客戶端對象。

我正在遍歷此列表,並查詢每個客戶是否進行過以下購買:

List<TransactRepViewModel> temporalList = transactRepViewRepository
        .findByClientIdAndClDateBetween(clieTabModel.getClientId(),
                reportInterval.getStartDate(),
                reportInterval.getEndDate());

TransactRepViewRepository.class方法如下所示:

List<TransactRepViewModel> findByClientIdAndClDateBetween(
        String clientId, Date startDate, Date endDate) throws DataAccessException;

我真的很想改善搜索時間,因為遍歷如此多的客戶端需要花費一些時間。 有什么我可以使用的技術嗎?

在不了解您要做什么的情況下很難提出具體建議,但是通常:

  • 進行一個大型查詢,例如,創建一個存儲庫方法,以查找您感興趣的日期之間的所有購買,並確保結果包括客戶ID。 返回結果后,將結果與Java代碼中的客戶端匹配。 這避免了執行潛在的數千個數據庫查詢的開銷。 您可能想按客戶ID和購買日期“訂購”。

  • 確保在涉及的表上具有正確的索引,並驗證jpa執行查詢時數據庫是否使用了索引。 表掃描可能會降低性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM