[Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.

2021. 4. 26. 03:10·Framework & Runtime/SpringBoot

우선, 제가 아는 지식내에서는 exist 메소드를 사용함으로 얻는 이점이 없으므로 작성한 내용입니다.

 

1
2
3
4
5
6
7
8
public Boolean memberExists(Long memberId) {
    Integer findMember = queryFactory
            .selectOne()
            .from(member)
            .where(member.memberId.eq(memberId))
            .fetchFirst();
    return findMember != null;
}
Colored by Color Scripter
cs

위처럼 fetchFirst() 를 이용하자. limit(1) 과 동일한 개념이며 사용시 원하는 결과를 찾을경우 쿼리가 종료되기 때문에 성능에 도움이 된다.

 

exist()를 사용할경우 select에 count(1) 의 결과를 받아 > 0 조건을 통해 조건을 반환한다.

그렇게 되면 원하는 결과를 찾아도 DB는 계속 검색을 진행하게 되므로 성능에 문제가 있을 수 있다.

 

그리고 selectOne 에서는 검색 결과가 없을경우 null 이 반환되므로 return 문에서 null 을 검사하여야한다.

반응형
저작자표시 비영리 (새창열림)
'Framework & Runtime/SpringBoot' 카테고리의 다른 글
  • RestTemplate 와 ObjectMapper 활용기(스프링에서 다른 서버의 JSON API Token 을 가져와서 이용해야 할 때)
  • Kotlin Spring Boot 에 Querydsl 종속성이 추가된 프로젝트 소스 공유
  • Spring Boot REST API Spring Security 고유키 만들어서 접근 제한하기(api key and secret)
  • [Querydsl] 동적 쿼리를 BooleanExpression 으로 작성하기
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    codingtest
    알고리즘
    Kotlin
    Silver5
    error
    Plugin
    java
    spring
    Spring Boot
    갤럭시
    bronze2
    bronze1
    코딩테스트
    백준
    Windows
    github
    c#
    minecraft
    후기
    Algorithm
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
[Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.
상단으로

티스토리툴바