DB/MYSQL

paging 작업

MAKGA 2021. 10. 7. 23:14
320x100

대량의 데이터를 불러올 때 한 번에 불러오면 부하가 크기 때문에 게시판 같은 곳에서도 전부 페이징 처리를 해서 데이터를 소량씩 불러온다.

 

테이블에서 불러올 데이터의 양을 정해주기 위해 쿼리에 LIMIT을 걸 수 있는데 사용법은 다음과 같다.

IN PAGE_NUM AS INT
,IN COUNT_PER_PAGE AS INT;

SELECT * FROM TABLE_NAME ORDER BY PK ASC LIMIT COUNT_PER_PAGE OFFSET (PAGE_NUM * COUNT_PER_PAGE)

여기서 LIMIT은 가져올 데이터 수, OFFSET은 어디서 부터 가져올건지 정하는 수치다.

대략 페이지 번호와 페이지 당 갯수를 예시처럼 파라미터로 받던지 SP 내부에 정해놓고 페이지만큼 OFFSET을 설정해 원하는 만큼의 데이터를 가져오면 된다.

 

위의 쿼리를 다음과 같은 방법으로도 작성 가능하다.

IN PAGE_NUM AS INT
,IN COUNT_PER_PAGE AS INT;

SELECT * FROM TABLE_NAME ORDER BY PK ASC LIMIT COUNT_PER_PAGE, (PAGE_NUM * COUNT_PER_PAGE)

 

예시들은 그냥 작성하고 문법에 맞는지 검사하지 않았기 때문에 오류가 난다면 알아서 수정해서 쓰자.

 

320x100

'DB > MYSQL' 카테고리의 다른 글

인코딩 설정 관련 설정  (0) 2021.10.11
스케줄러 사용  (0) 2021.10.07
[펌] MyISAM와 InnoDB 비교  (0) 2021.10.07
commands out of sync you can't run this command now  (0) 2021.10.07
MYSQL을 위한 GUI 툴  (0) 2021.10.05