"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 하위 쿼리 대 조인 : 하위 쿼리를 조인으로 교체하여 100 배의 성능 향상이 발생한 이유는 무엇입니까?

하위 쿼리 대 조인 : 하위 쿼리를 조인으로 교체하여 100 배의 성능 향상이 발생한 이유는 무엇입니까?

2025-03-24에 게시되었습니다
검색:344

Subqueries vs. Joins: Why Did Replacing a Subquery with a Join Result in a 100x Performance Improvement?

쿼리 최적화 : 하위 쿼리를 조인으로 대체하는 극적인 영향

최근 애플리케이션 리팩토링은 하위 쿼리를 내부 조인으로 대체하여 성능을 크게 향상 시켰습니다. 원래 코드는 절에서 하위 쿼리를 사용했습니다 :

WHERE id IN (SELECT id FROM ...)

변경으로 인해 100 배의 빠른 속도가 높아져 실행 시간이 50 초에서 0.3 초로 떨어졌습니다. 이것은 왜 그런 거대한 차이인가?

핵심은 하위 쿼리 동작을 이해하는 데 있습니다. 하위 쿼리의 절은 외부 쿼리의 값에 의존하는 서브 쿼리의

가있는 상관 관계 서브 쿼리입니다. 이 반복적 인 실행은 매우 비효율적입니다. 대조적으로, 비 상관 서브 쿼리는 한 번만 실행합니다.

원래 하위 쿼리는 상관 관계가있었습니다. 처리 된 모든 행에 대해 데이터베이스는 하위 쿼리를 실행해야했기 때문에 수많은 조회가 발생했습니다.

하위 쿼리를 내부 조인으로 교체하면 데이터베이스가 인덱스 조회를 효율적으로 활용할 수있었습니다. 조인 조건 (예 : submission_id = st_tag_id

)는 예선 행에 단일 인덱스 조회를 허용했습니다. 이 데이터베이스 액세스가 급격히 감소하여 성능 도약을 설명합니다.

수업? SQL 쿼리 최적화에는 하위 쿼리 대 조인을 신중하게 고려하는 것이 필수적입니다. 상관 관계 및 비 상관 서브 쿼리 및 성능의 영향을 이해하면 개발자가 훨씬 빠르고 효율적인 데이터베이스 쿼리를 작성할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3