2017-01-04 8 views
1

モルフォを使用してmongodbから200,000のデータをdbから取得したい。morphia mongodb巨大なデータを一括して取得する

以前の私は

query.batchSize(50).asList()

になく、運でそれを変更しようとしたメモリ例外 の私を与えた

query.asList()

を使用していました。

I update my code to

Iterable<DataStreams> iterable= query.fetch(); 
      Iterator<DataStreams> iterator=iterable.iterator(); 
      while (iterator.hasNext()) { 
       dataStreamsList.add(iterator.next());     
      }   
      System.out.println("iteration done"); 
+0

「2 lakhsのデータ」とはっきりしない可能性があるため、英語以外の用語を使用することは控えてください。たとえば、200キロバイトはあまりにも多く見えません。 –

答えて

2

query.asList()メモリへのすべてを引っ張ってきます。 query.fetch()は、結果セット全体を最初にメモリにロードすることなく、各エンティティ(デフォルトでは20のバッチ)を処理できるようにするイテレータを返します。

+0

上記の質問で私の現在のコードで私の質問を更新しました。ちょうど1時間後に更新すると同じ例外が再び発生しましたjava.lang.OutOfMemoryError:Javaのヒープスペース –

関連する問題