通常、この状況は発生しませんが、保証はありません。この状況は時々発生します。解決策は次のとおりです:
##ページングクエリステートメントを使用します。 (推奨される学習: mysql の学習)
ページング クエリは毎回少量のデータのみをクエリするため、大量のメモリを消費しません。データが大きいため、ページング クエリを使用すると時間を節約できる場合があります。
String sql = " SELECT uid,uname FROM t_user LIMIT ?,? " ; PreparedStatement ps = con.prepareStatement(sql) ; int pageSize = 10000; int pageId = 0; do { pst.setInt(1, pageId * pageSize); pst.setInt(2, pageSize); ResultSet rs = pst.executeQuery(); boolean isEmpty = true; while (rs.next()) { isEmpty = false; id = rs.getInt(1); name = rs.getString(2); } if (isEmpty) { break; } pageId++; } while (true); con.close(); } catch (SQLException e) { e.printStackTrace(); }
URL パラメータ構成の追加
jdbc URL に 2 つのパラメータを追加すると問題なく、メモリ オーバーフローの問題が正常に解決されます。"jdbc:mysql://localhost:3306/db3?useCursorFetch=true&defaultFetchSize=100";
以上がSQL クエリのデータが多すぎてメモリ オーバーフローが発生した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。