2011-09-19 4 views
0

from 절에 조인을 피하기 위해 side select 절에 select 절을 쓰곤했습니다. 그러나 나는 이것이 훌륭한 코디네이트 (coading) 관행인가 아니면 데이터베이스 성능을 저하시킬 까봐 걱정됩니다. 다음은 여러 테이블을 포함하는 쿼리이지만 모든 조인 문없이 중첩 된 select 절을 사용하여 작성했습니다. 제가 실수를하거나 괜찮은지 알려주세요. 이 순간 정확한 결과를 얻고 있습니다.중첩 된 select 절이 데이터베이스 성능을 저하 시키는가 ??

+0

가능한 복제본 : http://stackoverflow.com/questions/1067016/join-queries-vs-multiple-queries –

답변

2

이렇게하려면 조인을 사용하는 것이 가장 좋으며 쿼리 최적화 프로그램을 사용하는 것이 좋습니다.

하지만 학습을 위해 join과 with없이 스크립트를 실행하고 쿼리 계획과 실행 시간에 어떤 변화가 있는지 확인하십시오. 보통 이것은 귀하의 질문에 즉시 응답합니다.

0

실제로 가입해야한다고 생각합니다. 이제 where 및 select 문을 사용하여 직접 JOIN을 생성하십시오.

+0

JOIN은 비 최적 솔루션입니다. 권장하지 않음 –

+0

JOIN이 최적이 아닌 이유는 무엇입니까? 위 문장을 더 읽기 쉽게 만들 수 있습니다 ... –

+0

그래서 자신의 join 문을 구현하는 것이 더 낫습니다. – Max

1

당신의 해결책은 훌륭합니다. "조인 된"테이블마다 1 개의 열만 사용하고 여러 개의 일치하는 행은없는 것이 좋습니다. 어떤 경우에는 가입하는 것보다 낫습니다. (트릭을 사용하여 특정 방향을 강제하지 않으면 성능 향상을 초래할 수있는 db 엔진이 조인 방향을 언제든지 변경할 수 있습니다. 쿼리 최적화라고하지만 데이터베이스를 실제로 알고있는 한 쿼리가 어떻게 실행되어야 하는지를 결정하는 사람).

관련 문제