작성
·
180
0
안녕하세요. 강의 잘 듣고 있습니다.
다음과 같이 여러 테이블을 join 후 하나의 row를 뽑아내려고 하는데 성능은 어떻게 나오는지 궁금합니다.
select *
from table1
inner join table2 on table1.xxx = table2.XXX
inner join table3 on table2.XXX = table3.xxx
where table1.nnn = NNN
이렇게 되어있을 때 전체가 다 join이 된 후 where 조건을 테스트 하게 된다면 데이터가 많을 경우 성능이 떨어질 것 같아서요.
where 조건으로 먼저 필터링 한다면 금방 끝날 거 같긴한데 DB의 동작은 어떻게 처리되는건가요?
1. where 로 필터링이 되면서 join 되는것인지 아니면 join 완료 후 where로 필터링되는것인지 궁금합니다.
2. join의 횟수를 네다섯번씩 걸어도 성능에 무리가 없을까요?
3. 위 경우 한개의 컬럼만 찾으려면 limit을 추가해 주는게 나을까요?
1개 찾았을 때 전부 다 loop를 돌지 않고 빠져나가면 빠를거 같긴한데요.
확인 부탁드립니다.