인프런 커뮤니티 질문&답변

정현도님의 프로필 이미지
정현도

작성한 질문수

실전! Querydsl

스프링 데이터 페이징 활용2 - CountQuery 최적화

count query 부분 질문이 있습니다.

작성

·

249

0

localhost:8080/v3/members/?page=0&size=110 또는 page=2&size=40 으로 조회했을 때에는 카운트 쿼리가 실행되지 않는 걸 확인 했습니다.

  1. 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때
  2. 마지막 페이지 일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈 구함)

이 두 경우는 이해를 했는데(1번의 경우 시작이면서 마지막 페이지니까)

page=1&size=110 또는 page=2&size=50 으로 조회할 경우 content.size()가 0인데도 카운트 쿼리가 실행됩니다.

메소드에서 size가 0이면 카운트 쿼리를 날리게 구현한 걸 봤지만 왜 이렇게 해뒀는지 도저히 상상이 안되네요. 이유를 알 수 있을까요? 허접한 질문이라 죄송합니다... 아직 부족한 게 많네요 ㅠㅠ

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 현도님

이 부분은 저도 잘 모르겠습니다. 혹시 아시는 분 있으면 답변 부탁드려요.

감사합니다.

안녕하세요. 초보개발자 명아주입니다.

제가 답변달자면. 컨텐츠가 1개라도 있으면 사이즈를 계산할 수 있는데, 컨텐츠가 0개이면 몇개있길래 현재 페이지의 컨텐츠가 0인지 알 방법이 없습니다.

page=0 인경우, 사이즈가 0이라면 0개지만,

page!=0 일땐, 현재 컨텐츠 사이즈가 0 이면 몇페이지부터 없었는지 알방법이 없습니다.

 

감사합니다.

정현도님의 프로필 이미지
정현도

작성한 질문수

질문하기