2017-02-03 16 views
1

私はmysqlテーブルを使用しており、レポート作成のために1つのクエリで10百万以上のデータをフェッチしたいと考えています。hibernateを使用して何百万ものレコードテーブルをフェッチする最良の方法

テーブルには外部キーも含まれている可能性があります。私はデータをフェッチするために休止状態のクエリを使用しています。照会部分だけで20〜30秒ほどかかります。

これを最適化する方法はありますか? mysqlでテーブルのインデックスを作成すると助けになりますか?

+7

"これを最適化する方法はありますか?"ええ、報告にHibernateを使わないでください。 – Kayaman

+0

_ mysqlのテーブルを索引するのは助けになるでしょうか?_もちろん。索引なしでは、これは参照なしで検索する必要があります。しかし、どのようにインデックスなしで多くのデータを持つことができます... – AxelH

+0

うーん、私はデータを転送するにはかなりの時間がかかると思うだろう。カウントを返すか、できるだけデータを小さくするだけで、クエリを確認してください。また、問合せでexplainを呼び出して、どこかで最適化できるかどうかを確認してください。これはすべてSQL側にありますが、Hibernateはエンティティを作成するためのオーバーヘッドを追加します。一方、エンティティのプロパティ/フィールドのみを選択し、エンティティ全体ではなく、Hibernateを回避するかどうか、つまりプレーンSQLを代わりに使用するかどうかをチェックします。 – Thomas

答えて

関連する問題