MySQL에서 대규모 결과 세트 스트리밍
MySQL에서 대규모 결과 세트를 검색하는 것은 어려울 수 있으며, 특히 애플리케이션 메모리가 제한된 경우 더욱 그렇습니다. 이 문제는 JDBC 드라이버가 전체 테이블을 메모리에 로드하려고 시도하여 OutOfMemoryException이 발생하는 경우에 자주 발생합니다.
setFetchSize() 사용
이 문제에 대한 일반적인 해결 방법 중 하나 문제는 setFetchSize() 메서드를 사용하여 데이터베이스. 그러나 스트리밍을 활성화하려면 MySQL JDBC 드라이버에 추가 설정이 필요하므로 이 접근 방식만으로는 항상 충분하지 않습니다.
전방향 전용, 읽기 전용 문 생성
MySQL에서 결과 세트 스트리밍을 활성화하려면 다음을 사용하여 명령문을 생성해야 합니다. 설정:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
가져오기 크기 설정
문이 생성되면 setFetchSize() 메서드를 사용하여 다음을 힌트해야 합니다. 큰 결과 세트가 필요할 수 있는 드라이버 검색됨:
stmt.setFetchSize(Integer.MIN_VALUE);
스트리밍 주의 사항
결과 집합 스트리밍의 제한 사항과 주의 사항을 인식하는 것이 중요합니다.
추가 고려 사항
사용에도 불구하고 OutOfMemoryError가 지속되는 경우 위의 설정은 데이터가 사용 가능해졌을 때 애플리케이션이 데이터를 즉시 처리하지 않음을 나타낼 수 있습니다. 이를 위해서는 전체 결과 세트가 메모리에 유지되지 않도록 데이터를 증분적으로 처리하도록 코드를 재구성해야 합니다.
위 내용은 OutOfMemoryError를 방지하기 위해 MySQL에서 대규모 결과 세트를 효율적으로 스트리밍하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!