작성
·
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
어노테이션을 통해 복잡한 쿼리를 직접 작성할 수 있다는 점이 언급되어 있습니다. 여기에서 더 많은 정보를 확인하실 수 있습니다.