Inflearn brand logo image

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

신준섭님의 프로필 이미지
신준섭

작성한 질문수

JPA (ORM) 개발자를 위한 고성능 SQL (High-Performance SQL)

Subqueries(3) - IN and NOT IN

exist subquery limit1

작성

·

35

0

Not Exist subquery가 값이 존재하면 탐색을 중단하기 때문에 Exist subquery보다 효율적이라고 이해했는데, 그럼 Exist subquery에 limit 1을 넣어주면 더 효율적일까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
신준섭님, EXIST 서브쿼리에 LIMIT 1을 사용하는 것은 그 자체로 효율성을 높이는 방법은 아닙니다. EXIST 서브쿼리는 조건을 만족하는 행이 하나라도 있으면 TRUE로 처리합니다. 따라서 LIMIT 1을 명시적으로 추가한다고 해서 EXIST의 퍼포먼스가 크게 향상되지는 않습니다.

하지만 SQL을 실행하는 DBMS의 최적화 능력에 따라 작은 차이는 있을 수 있습니다. 가독성을 위해 LIMIT 1을 사용하시는 것은 괜찮을 수 있지만, 성능 측면에서는 크게 기대할 수 없다는 점을 알고 계시면 좋겠습니다.

추가적으로 더 복잡한 쿼리 최적화가 필요하시다면, Spring Data JPA 같은 ORM 도구를 활용하여 쿼리를 직접 작성하거나, 명시적인 @Query 어노테이션을 사용하는 것도 한 가지 방법이 될 수 있습니다. 필요에 따라 직접 쿼리를 작성하고 Optional 키워드를 이용해 필요한 값을 처리하는 것도 고려해 보세요.

이미 저희 자료에서는 @Query 어노테이션을 통해 복잡한 쿼리를 직접 작성할 수 있다는 점이 언급되어 있습니다. 여기에서 더 많은 정보를 확인하실 수 있습니다.

신준섭님의 프로필 이미지
신준섭

작성한 질문수

질문하기