私は並列に照会する長い文字列を持っています。私がしたかったのは、文字列をより小さな単位に解析し、各ユニットをリモートデータベースに送り、それらのそれぞれについてクエリ結果を得ることでした。スレッドプールを使用してリモートデータベースを照会する
私の並列化は次のように動作します:パースされた各文字列はリモートデータベースを照会する必要があるため、スレッドプールを作成し、パースされた文字列ごとにデータベースにクエリを実行するいくつかのランナブルを追加しました。しかし、私はその場合に1つのデータベースインスタンスしか持っていません。だから、コードは、おおよそ次のようになります。
for (String s : bigQuery)
// this function connects to that database instance and queries the string "s"
queryMyDatabase(s, databaseInstance);
残念ながら、私はただ1つのクライアント/インスタンスを使用しているため、それがあるかどうか私のスレッドプールの実装では、私のクエリの速度を増加させない、と私は思っていました。その場合に接続プールを実装する必要がありますか?リモートデータベースとしてCouchDBを使用していますが、接続プールの推奨事項はありますか?
私は、すべてのスレッドで同じことをクエリしている場合は、一度に実行すれば速くなると思います。スレッドの作成、ステートメントの準備、データベースへの移動時間などのために、実際にパラレルで実行するのは実際には遅くなります。 – mezzie