홈 › SQL 실무 › 01 / 9

페이징 쿼리

ROWNUM, LIMIT, OFFSET FETCH, 키셋 페이징
섹션 6진행 0 / 9

페이징 쿼리: ROWNUM, LIMIT, OFFSET FETCH, 키셋 페이징

게시판 목록은 한 화면에 10건씩 보여 주고 "다음" 을 누르면 그다음 10건을 가져옵니다. 표준은 OFFSET ... FETCH 이고, Oracle 은 ROWNUM, MySQL 은 LIMIT, MSSQL 은 TOP 이라는 방언도 함께 씁니다. 뒤 페이지가 느려지는 문제를 피하는 키셋 페이징까지 한 번에 정리합니다.

1. 왜 배우는가

SQL 실무 카테고리는 화면·보고서·운영에서 매일 쓰는 쿼리 패턴을 다룹니다. 문법 자체는 앞의 중급·고급에서 익혔으니, 여기서는 그 문법을 업무 요구에 맞게 조립하는 방법을 봅니다. 첫 주제는 거의 모든 화면에 들어가는 페이징입니다.

목록 화면에 수만 건을 한꺼번에 내려 보낼 수는 없으니 페이지 단위로 자릅니다. 문제는 자르는 문법이 DB마다 다르다는 점과, 정렬이 모호하면 페이지 사이에서 행이 겹치거나 빠진다는 점입니다. 또 페이지 번호가 커질수록 느려지는 현상은 데이터가 쌓인 뒤에야 나타나서 운영 중에 발견되곤 합니다.

이 레슨은 표준 방식과 DB별 방언, 총 건수를 같이 구하는 요령, 정렬 동점 함정, 그리고 뒤 페이지에서도 빠른 키셋 방식을 다룹니다. 고급 01 순위 함수와 중급 09 인덱스를 알면 이해가 쉽습니다.