2012-07-19 150 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