-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
join 관련 질문입니다.
22.07.27 16:21 작성 조회수 138
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를 돌지 않고 빠져나가면 빠를거 같긴한데요.
확인 부탁드립니다.
답변을 작성해보세요.
1
Rookiss
지식공유자2022.07.27
1. 강의 후반부에 나오는 [실행 계획]을 참고하시기 바랍니다. 그리고 인덱스를 어떻게 걸었는지가 아주 큰 관건입니다.
2. 성능에 좋진 않겠지만 아주 간혹 그럴 일이 생깁니다. (퀘스트, 아이템, 업적 포함 유저의 모든 정보를 긁어온다거나..)
3. 네 그렇습니다.
0
답변 2