강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

777joonho8873 のプロフィール画像
777joonho8873

投稿した質問数

[百聞は一見に如かず] データ分析のための中級SQL

Self JOIN リートコード問題解き2 + MySQL 日付データ足し算引き算

Runtime 질문 입니다

作成

·

309

1

Self JOIN의 경우 Runtime 이 짧은 순서가

1. LEFT JOIN

2. WHERE

3. INNER JOIN

이렇던데 개인이 편한 문법으로 작성하면 될까요? 아니면 강의처럼

INNER JOIN을 사용하는게 좋은가요?

sql

回答 1

2

canary4651님의 프로필 이미지
canary4651
インストラクター

안녕하세요 이준호님! 

예시 문제는 쿼리가 길지 않지만

실제로 쿼리를 작성할 때 길어지고 데이터 양이 많아진다는 것을 고려하면

Runtime이나 쿼리 성능을 위해서는 더 빠른 INNER JOIN을 사용하는 게 좋습니다. 

경우에 따라서 다르겠지면, INNER JOIN을 사용하게 되면

추가적인 JOIN 또는 연산해야하는 data의 수가 줄기 때문에 INNER JOIN을 적절히 사용하는 것이 좋습니다.

또 보통 WHERE 절로 필터링 하는 것과 INNER JOIN은 실행시간이 같습니다. 

그래서 빠른 순위를 적는다면

1. INNER JOIN

2. WHERE 필터링

3. LEFT JOIN 

순서가 됩니다. 

스택오버플로우에 올려진 글도 참고하시면 좋을 거 같아요.

- https://stackoverflow.com/questions/2726657/inner-join-vs-left-join-performance-in-sql-server/2726683

- https://stackoverflow.com/questions/121631/inner-join-vs-where

감사합니다 :) 

777joonho8873 のプロフィール画像
777joonho8873

投稿した質問数

質問する