'페이지'에 해당되는 글 1건

  1. 2009.01.21 페이지 분할 쿼리문

설명 : DB 유형별 게시판 리스트 화면에서의 페이지 분할 쿼리문
한 page당 출력되는 레코드 수를 page size라 한다면 아래 쿼리를 사용하여 항상 page size 만큼만 불러와서 테이블에 많은 레코드가 쌓여 있더라도 안정된 성능을 보장할 수 있다 단 오라클의 경우엔 생각해 볼 여지가 있다

 

변수 설명

page_size - page당 출력되는 레코드 수
current_page - 현재 페이지

 

 

Oracle :

 

start_num = (current_page - 1) * page_size + 1
end_num = current_page * page_size

 

select seq,title,wr_date from
   (select rownum no, ma.seq,ma.title,ma.wr_date from
     (select seq,title,wr_date from bbs order by seq desc) ma
   where rownum <= end_num)
where no >= start_num order by seq desc


 

MS-SQL :

 

start_num = (current_page - 1) * page_size

 

select top page_size seq,title,wr_date from bbs where seq not in
    (select top start_num seq from bbs order by seq desc) order by seq desc


 

MySql :

 

start_num = (current_page - 1) * page_size


select seq,title,wr_date from bbs order by seq desc limit start_num, page_size    

 

덧붙여서 :

가장 외부의 order by는 불필요할 수 있으나 인덱스 컬럼 이외의 정렬이 있을수 있으므로 그냥 두기로 한다

 

ceil 함수가 없는 언어에서 page_count 구하기

page_count = int((record_count + record_count - 1) / page_size)

 

 

그즈음 : 잘 짜여진 소스를 보다보면 한편의 아름다운 시를 읽는 듯한 코딩 미학을 발견할 때가 있다 갖은 기교와 현란함으로 자랑하지 않는 가운데 간결하면서도 함축된 깊이를 느끼게 해주는 코드들이다

더하지도 덜하지도 않은 단순함과 간결함 그러면서도 깊이를 잃지 않은 정확성은 나를 포함한 내 직업 전체의 품격을 높여주는 것 같다

이처럼 뭐든지 열심히 하면 예술의 경지에 다다를 수 있다는데 이 바닥에서 예술을 추구한다면 자기 이름도 생각 안날때까지 맞던가 아니면 신용불량자로 굶어 죽은 후에 후대에 가서 하드디스크가 복원되면 그때 추앙 받을 수 있을 것이다


Posted by 철냄비짱
,