2012-04-18 19 views
0

考慮一個層次結構:設計方法:過程還是帶有巨大數據的Java?

品牌 - >產品 - >產品 - >數量。

假設有不同的表格,鏈接如上所示,有10,000多行。 我想通過以下方式獲取所有數據:

品牌 - 與他們 - 產品 - 與他們 - 項目 - 與他們 - 數量。

我想到了這種方法 a)從非常基本的地圖中的過程獲取所有記錄 b)在這些地圖上迭代並使用Java鏈接它們。

由於需要花費很多時間,有沒有比這更好的方法?

由於提前

+3

你需要怎樣處理結果對象?也許這是有道理的檢索數據懶惰或塊大塊省略加載到內存的整個集合? – ffriend 2012-04-18 13:02:36

+0

數據是否經常變化?如果沒有,你可以使用ehcache之類的東西緩存它。我看到ehcache容易處理100,000多個對象,沒有任何性能問題。 – Pushkar 2012-04-18 13:04:59

+0

您是否嘗試過分析您的解決方案以查看a)或b)需要「很多時間」?然後我們可以討論如何加快速度。 – mazaneicha 2012-04-18 13:05:17

回答

1

看起來你是加入在關係數據庫中的表,所以很自然地用SQL這一點。 Java是錯誤的工具,你可能會面臨許多錯誤。

如果查詢返回的數據過多,請嘗試使用LIMIT或按照朋友的建議,向查詢添加參數以選擇整個結果集的特定塊。

如果客戶端真的需要一整批,您可以在使用遊標完成數據庫讀取之前開始流式傳輸響應(我認爲它是某種您正在編寫的Web服務)。但是這是一個很大的努力,如果你的服務器不能處理數據,那麼客戶端可能也無法處理。

相關問題