2012-03-05 14 views
0

タイトルを見ると、どのデータベースがパフォーマンスの面で便利かを聞いてうれしいです。Hibernateのパフォーマンスの問題:ScrollableResults vs firstResult/maxResult

どちらのケースを好むのがベストですか?その理由は何ですか?

(PS:ちょうどデータ-mysql-の何百万人も含めて、単一のが、巨大なテーブルから行を選択する1対多などのような任意のマッピング関係がありません)事前に

感謝。

答えて

2

通常、mysqlコネクタはすべての結果をメモリに取り込み、メモリ内でこれらの結果をナビゲートします。もちろん、これは悪いです。

回避策は、一度に1つずつ検索するstatement.setFetchSize(Integer.MIN_VALUE)を呼び出すことです。これはパフォーマンスを悪化させますが、あまりメモリを消費しません。

詳細はこちらhttp://bugs.mysql.com/bug.php?id=18148

+0

こんにちは、ありがとうございます。上記の情報についてもっと詳しく説明できますか?言い換えれば、私はあなたがメモリ、scrollableResultsまたはfirst/maxResultを通して結果をナビゲートすることができるアプローチを知りたいですか?私の最後の不思議は、fetchSizeをどのように使用するかです。リンクやコードはありますか?ありがとう.. – Javatar