void pagination(ResultSet rs, long pageNo, int pageSize) throws Exception{
int i= 0 ;
while(rs.next){
if(++i >(pageNo-1)*pageSize) printRow(rs) ;
if(i == pageNo * pageSize) break ;
}
}
사용자가 다음 페이지를 요청하거나 스크롤 바를 내릴 때마다 개별적인 SQL문을 수행하는 방식으로 페이지 처리를 구현
페이지 처리를 서버 단에서 완료하고 최종적으로 출력할 레코드만 Fetch
1. 다량의 Fetch Call 발생
2. 대량의 결과 집합을 클라이언트로 전송하면서 발생하는 네트워크 부하
3. 대량의 데이터 블록을 읽으면서 발생하는 I/O 부하
4. AP서버 및 웹 서버 리소스 사용량 증가
1. 페이지 단위로, 화면에서 필요한 만큼씩 Fetch Call
2. 페이지 단위로, 화면에서 필요한 만큼씩 네트워크를 통해 전송.
3. 인덱스와 부분범위처리 원리를 이용해 각 페이지에 필요한 최소량만 I/O
4. 데이터를 소량씩 나누어 전송하므로 AP, 웹 서버 리소스 사용량 최소화
*조회할 데이터가 일정량 이상이고 수행빈도가 높다면 필수적으로 페이지 처리를 구현
*일반 조회 시 페이지 처리
*사용자가 필요할 때만 '전체 조회' 또는 '다운로드 받기' 버튼을 클릭할 수 있도록 기능을 제공.
페이지 처리를 하는 목적은
-1차적으로 데이터베이스 Call 횟수를 감소
-네트워크를 통한 데이터 전송량을 최소화하고
-서버 내에서의 처리 일량을 감소