質問: jdbc(mysql connector j/)でのlimit句について jdbc(mysql-connector-java-3.1.8-bin.jarを使用)にて、mysqlからデータを取得するプログラム中で、どうしても解決できない問題がありご質問させて頂きました。 初心者で申し訳ございませんがご教授お願い致します。 上記のjdbcを使ってデータ数20万件程のテーブルから select * from test_table where id>100 order by id asc limit 0,500 のような感じでデータ取得を行うと、limitが500件までに設定しているにもかかわらず、whereでの条件に適合するデータが多いと(例えばwhere id>1)クエリの実行に非常に時間がかかり、結局outofmemoryで止まってしまいます。outofmemoryで止まるということは返ってくるデータが大きすぎるのかとも思いましたが、limitで制限しているし、何故か分からず困り果てております。 私が仕組みを理解していないだけなのかもしれませんが、宜しければご教授頂けませんでしょうか?宜しくお願いいたします。
回答: 単純計算(1レコードあたりのバイト数×500)するとデータ量はどのくらいなんですか? limit句を使っても500件のデータが大きければoutofmemoryになりますよ。