我有一个长字符串被并行查询。我想要做的是将字符串解析为更小的单元,并将每个单元发送到远程数据库并获取每个单元的查询结果。使用线程池查询远程数据库
我的并行化是这样工作的:每个分析过的字符串都需要查询远程数据库,所以我创建了一个线程池,并添加了几个可查询数据库的每个分析字符串的runnable。但在这种情况下,我只有一个数据库实例。因此,代码大致是这样的:
for (String s : bigQuery)
// this function connects to that database instance and queries the string "s"
queryMyDatabase(s, databaseInstance);
不幸的是我的线程池实现不增加我的查询速度,我想知道是否是因为我只用一个单一的客户端/实例。在这种情况下,我需要实现连接池吗?我使用CouchDB作为远程数据库,你有没有关于连接池的建议?
我会认为如果你在所有线程中查询同样的东西,那么如果你一次完成它就会更快。由于创建线程,准备语句,旅行时间到数据库等,并行执行它实际上会慢一些。 – mezzie 2012-04-18 14:27:08