2012-02-26 2 views
0

Mysql Server 5.5를 사용하십시오.mysql join - 어떻게 동작 하는가?

씨 성을 VARCHAR (20) IDNUM의 INT (20)

와 나는 두 테이블을 조인 할 IDNUM = 5 :

내가 folowing 열 foo1은과에서는 foo2라는 두 개의 동일한 테이블이 있다고 할 수 있습니다

select * from foo1 
join foo2 on foo1.idnum=foo2.idum 
where foo1.idnum5; 

처음 테이블과 오의 모든 행을 조인 않습니다 난 다음 코드를 사용하여 구현하는 경우 지금

nly 그러면 어디 필터 및 idnum5 행 반환?

내가 아마 그런 식으로 구현해야합니다 그래서 사실이라면 :

select * from foo1 
join foo2 on foo2.idnum=5 
where foo1.idnum=5 

이 구현은 빨리 가입입니까? 어떤 차이가 있습니까?

이것이 실제로 내 조인 쿼리를 최적화하는 방법 중 하나인지 알기 위해 어떻게 작동하는지 이해하려고합니다.

문제에 관한 정보는 크게 감사하겠습니다.

감사합니다.

답변

0

조인의 흐름은 최종 자격을위한 테이블 간의 관계를 준비하는 것입니다. WHERE 절은 실제로 레코드를 PRIMARY로 끌어내는 응용 프로그램을 시작하고 인덱스를 사용하여 WHERE 부분에서 참조되는 테이블의 제한된 레코드를 최적화하도록 구조화되었습니다.

그 결과로 조인이 적용됩니다 (또는 왼쪽 조인/오른쪽 조인). 해당되는 경우 THOSE 레코드가 포함되도록 허용됩니다. 그렇지 않으면 WHERE 절이 통과하도록 허용 된 데이터의 기본 세트에서 제외됩니다.