[MySQL] Inner Join과 Left Join의 차이

고재개발·2022년 1월 18일
0

MySQL

목록 보기
5/5

  • Inner Join : Table A와 Table B의 교집합을 조회
  • Outer Join : Table A와 Table B의 합집합을 조회

업무를 하다가, LEFT JOIN과 JOIN으로 속도차이가 확연한 것을 발견했다.

비교하는 행 수가 아예 다르다면(즉, 위의 그림 중 빨간 영역의 데이터들이 다르다면) 속도 차이가 나는 것을 이해하지만, 내가 조회한 데이터는 같은 데이터였다.
그러나 둘 다 조회하는 행 수는 같았다..

그래서 explain으로 쿼리문을 뜯어보니..
INNER JOIN으로 JOIN한 경우에는

LEFT JOIN으로 한 경우에는

여기서 type이 JOIN 속도와 밀접한 항목인데, 각 JOIN을 PK로 조인할 때 차이가 난다.(PK가 아닌 column으로 JOIN하면 속도가 비슷한 것을 발견..!)

추가적으로, 8.0부터는 inner join에 hash join 방식도 들어가서 더 빠르다고 하니.. 상황에 따라 효율적인 쿼리문을 작성하자.

profile
고재개발

0개의 댓글