2012-07-19 139 views
0

實施以下方案的最佳方法是什麼?Java針對大量數據的數據庫查詢/更新

我需要調用/查詢包含數百萬個來自java應用程序的記錄的數據庫表。然後對於表中的每條記錄,我的應用程序應調用第三方API並獲取狀態字段作爲響應。然後,我的應用程序應該再次使用API​​中的信息(狀態)更新表中的每一行。

注 - 我試圖找出一種方法,以最好的方式做到這一點。我明白,一起查詢所有記錄並不是最好的方式。

回答

1

不要試圖一口大口地吃大象。大塊它。聽說過分頁?用它。請參閱此處:MySQL pagination without double-querying?

+0

是的,我聽說過分頁。我正試圖找出解決我的問題的最佳解決方案。我從來不打算一次查詢和獲取所有記錄。我試圖弄清楚是否有一種平行的方法,而不是順序的方法。 – 2012-07-19 19:21:45

+1

平行不會買你太多。您將看到一個或多個級別的瓶頸 - 無論是Java性能,內存開銷,還是RDBMS級別的RW遲緩。如果你想快速推出大事,NoSQL方法可能會對你有所幫助。即使在那裏,我也會建議分頁,但是由於RW的發展速度很快,它會比常規的RDBMS帶給你更少的延遲。 – Nishant 2012-07-20 04:48:07

0

數據庫不旨在通過Java API重複更新數百萬條記錄。這可能需要很多分鐘。如果這還不夠,你可能需要使用嵌入在Java中的數據集(無論是高速緩存或更換您的數據庫)

+0

:我明白了。我想知道這樣一個任務的最佳方法是什麼。 – 2012-07-19 21:26:56

1

可以使用Oracle的功能,如SQL裝載機,數據抽通過JDBC或腳本調用..

+0

你能再詳細一點嗎?我一定會做更多的研究.. – 2012-07-19 19:23:25

+0

你使用下面的鏈接.. http://www.orafaq.com/wiki/SQL*Loader_FAQ 寫入一個腳本和調用通過JDBC API如execute() – 2012-07-20 11:30:54