본문 바로가기
학교 강의/데이터베이스

페이징

by hoshi03 2023. 10. 29.

페이징을 사용하는 이유 - 목록이 100만개일때 100만개 전부를 select로 한번에 가져오는 것은 엄청난 부하가 걸린다

 

데이터베이스에서 데이터 양을 적당히 끊어서 가져오는 것을 페이징이라고 한다, 페이징에는 2가지 형태가 있다

 

Offset based paging - 페이지 번호를 찾아서 이동하는 페이징

select*
from book
order by likes desc
limit 10 offset 0;

데이터를 10개씩 가져와서 보여주고 0개씩 건너뛴다

limit - 가져오는 데이터의 갯수, offset - 건너뛸 데이터의 양

 

페이지 x번에 대하여 한 페이지에 y개를 보여주기

select * 
from book
order by likes desc
limit y offset(x - 1) * y;

Offset paging의 단점

페이지가 뒤로 갈수록 데이터가 많아져서 성능상의 이슈가 발생할수 있고 

사용자가 다음페이지로 넘어가려는 찰나에 게시글이 추가되면 본 게시글이 다음 페이지에서도 또 보이는 경우가 발생한다

이런 단점을 보완하기 위해서 cursor based 페이징을 사용한다

 

cusor paing의 경우 마지막으로 조회한 대상을 가르켜 페이징을 하는 방법

마지막으로 조회한 대상 그 다음부터 가져온다

 

이 erd를 바탕으로 쿼리문 가져오기

 

'학교 강의 > 데이터베이스' 카테고리의 다른 글

데베 퀴즈 대비  (1) 2023.11.16
10주차  (0) 2023.11.10
조인, 서브쿼리 조금 더 알아본 내용  (0) 2023.10.29
9주차 조인, 서브쿼리  (1) 2023.10.27
데베시험대비  (0) 2023.10.18