mysql 에서 INNER 조인 시 어느 경우가 제일 성능이 좋나요? 0 2 255

by 개복치 [SQL Query] [2022.01.18 09:41:01]


[1번]

select *

from table1 t1 inner join table2 t2

on t1.id = t2.id

where t1.id = 1 and t1.name = “테스트1”;

[2번]

select *

from table1 t1 inner join table2 t2

on t1.id = t2.id and t1.id = 1 and t1.name = “테스트1”;

[3번]

select *

from (select * from table1 where id = 1 and name = “테스트1” ) t1 inner join table2 t2

on t1.id = t2.id;

 

행을 줄여서 조인하면 속도가 더 빠를거 같다 생각해서 

성능 테스트 시 3번이 제일 빨랐는데

그 이유를 잘 모르겠네요..

실행 순서가 FROM 이 먼저여서 일까요?

대량 데이터에서도 결과가 동일할 지 궁금합니다.  ㅠㅠ 

by 마농 [2022.01.18 10:00:54]

1,2,3 번 다 동일할 듯 합니다.
실제 동일한지는 실행계획을 비교해 보시길 바랍니다.
3번의 경우 굳이 인라인뷰를 쓰지 않아도 되구요.
2번의 경우 검색조건은 ON 절이 아닌 Where 절에 주는게 좋습니다.(성능과는 무관)
조건절을 구분하는게 좋습니다. ON 절에는 조인조건을, Where 절에는 검색조건을
따옴표는 표준에 맞는 홑따옴표 권장합니다. (쌍따옴표는 비표준)


by 개복치 [2022.01.18 10:21:37]

감사합니다 : ) 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입