본문 바로가기
일하딩/Mysql

[Mysql] Select 시 Paging 처리 하기. Limit, Offset

by 별난형 2020. 11. 11.

사이트를 만들다보면 무조건 최소 한번은 Paging 을 처리해야하는 화면이 있다.

 

이때 사용할 수 있는 방법은 Back-End 에서 데이터를 모두 불러와서 원하는 부분만 잘라서 보여주거나

(거의 쓰이지 않음)

 

DB 에서 Select 할 때 원하는 부분만 가져오는 방법이 있다. DB 에서 처리하는 방법이 가장 많이 쓰이고 바람직하다.

 

Oracle 에서는 이걸 rownum 을 사용해서 처리하는데 이 방법은 쌓여있는 데이터가 많아지면 속도가 다소 느려진다.

 

Mysql 에서는 Limit 과 offset 을 제공하여 훨씬 빠르게 원하는 위치에서 원하는 만큼의 데이터를 가져올 수 있다.

 

쿼리는 아래와 같다.

SELECT *
  FROM dbtable
 WHERE status = 'Y'
 ORDER BY CODE 
 LIMIT 20 OFFSET 0

맨 마지막에 Limit 과 offset 이 중요하다.

 

Limit 은 가져올 데이터 양

 

offset 은 가져올 데이터의 초기 위치값이다.

 

즉, 0(처음) 에서부터 20건의 데이터를 가지고 오라는 의미이다.

 

Paging 을 하기위해서 0 부분을 변수로 지정하여

 

페이지를 이동할때마다 해당 페이지의 offset 값을 계산하여 지정해주면 된다.

 

 

댓글