작성
·
211
0
안녕하세요,
스프링부트3.x 와 H2(메모리 모드) 를 사용하고 있습니다.
페이징 쿼리가 limit offset 이 아니라 offset fetch 쿼리가 나갑니다.
@Test
public void paging1() {
List<Member> result = queryFactory
.selectFrom(member)
.orderBy(member.username.desc())
.offset(1) //0부터 시작(zero index)
.limit(2) //최대 2건 조회
.fetch();
assertThat(result.size()).isEqualTo(2);
}
스프링부트2.x 로 테스트를 해보니 limit offset 으로 나가는데 혹시 버전이 올라가면서 최적화를 해주는걸까요?
그렇다면 fetch 가 더 성능이 좋다는 이야기가 되는걸까요?
항상 감사합니다!
답변 1
0
안녕하세요. lch9502님, 공식 서포터즈 OMG입니다.
영한님의 스프링데이터 JPA강의에 올리온 질문이긴 하나, 하이버네이트 버전은 동일하게 버전업 되었기에 동일한 상황일 것으로 예상합니다 😀 출력쿼리도 offset fetch first rows only로 동일하네요!
영한님 답변을 참고해주세요 ^^
감사합니다.