woowacourse-study / 2022-Real-MySQL

⚡️토르⚡️의 짜릿한 Real MySQL 뽀개기 🔨
9 stars 3 forks source link

서브쿼리보다는 조인을 (Derived) #27

Open injoon2019 opened 2 years ago

injoon2019 commented 2 years ago

주제

서브쿼리보다는 조인을 써야 하는 이유

선정 이유

Jpa 스터디를 하면서 서브쿼리가 이야기가 나온적이 있다. 그때 서브쿼리가 성능이 좋지 않다는 이야기는 나왔는데 구체적으로 왜 그런지는 이유를 몰랐다.

해당 텍스트

EXPLAIN
SELECT *
FROM (SELECT de.emp_no FROM dept_emp de GROUP BY de.emp_no) tb, employees e
WHERE e.emp_no = tb.emp_no;

위의 From 절의 서브쿼리는 제거하고 조인으로 할 수 있다. 실제로 다른 DBMS에서는 쿼리를 재작성해서 최적화 기능을 제공하지만 MySQL 에서는 임시 테이블로 만들어서 처리한다. MySQL에서 조인 쿼리에 대한 최적화는 많이 성숙한 상태다. 그래서 가능한 불필요한 서브쿼리는 조인으로 쿼리를 재작하는 것이 좋다.

관련 페이지

p.425