Language/MySQL

MYSQL 페이징 기법(LIMIT)

CHOIDR 2021. 5. 21. 22:54

게시판이나 상품정보등 몇백개 이상이 되는 정보들을 한번에 조회하게 된다면 충분히 과부하가 걸릴 수 있습니다.

이를 최소화 해주는 방법이 바로 페이징 기법입니다.

 

MYSQL에서 이를 구현하기 위해서는 'LIMIT'을 사용하면 됩니다.

LIMIT은 출력되는 레코드의 개수를 제한해주는 기능을 가지고 있습니다.

 

단순 SELECT문을 실행 시 165개의 레코드가 조회되지만,

 

조회 된 레코드 수

 

LIMIT을 사용하였을 때는 10개의 데이터만 조회되는 것을 확인할 수 있습니다.

 

LIMIT

 

그렇다면 앱을 사용하는 유저가 어떻게 계속해서 N개의 상품, 게시판등을 볼 수 있을까?

방법은 Table의 고유 index값을 사용하면 됩니다.

클라이언트가 서버에 사용자가 조회한 마지막 index 값을 보내준다면 그 값을 기준으로 N개의 데이터를 조회하여 Response 해주면 됩니다.

 

 

예를 들어 10개의 상품을 보여주는 프로그램에서 클라이언트가 13이라는 last index를 보내주었다고 가정해보자.

아래의 SQL문 처럼 매개변수 ' ? ' 안에 13이라는 수를 넣고 조회하면 index 14부터 10개가 조회되는 것을 확인할 수 있습니다.

 

 

이런식으로 클라이언트에서 보내준 last index 값을 기준으로

N개의 데이터들을 계속해서 사용자에게 보여줄 수 있는 것입니다.