일반적으로 이러한 상황은 발생하지 않지만 가끔 발생한다는 보장은 없습니다. 해결 방법은 다음과 같습니다.
#🎜🎜 #
페이징 쿼리 문을 사용하세요. (추천 학습: mysql learning)
페이징 쿼리는 매번 소량의 데이터만 쿼리하기 때문에 용량도 많이 차지하지 않습니다. 그리고 데이터 양이 많을 경우 페이징 쿼리를 사용하면 시간이 절약됩니다.
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에 두 개의 매개변수를 추가해도 메모리 오버플로 문제가 성공적으로 해결됩니다. 질문."jdbc:mysql://localhost:3306/db3?useCursorFetch=true&defaultFetchSize=100";
위 내용은 SQL 쿼리에 데이터가 너무 많아 메모리 오버플로가 발생하면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!