2013-05-23 4 views
0

나는이에 대한 명확한 답을 찾을 수없는 곳에서 조건 내 시험 결정적 대에서 조건 상수와 다른 관계에서 ON 상태를 넣는 것이 더 빠릅니까? 아니면 어디에서 마지막에?MySQL을

예 :

SELECT * FROM `" . BLABLA . "` as `s` 
    JOIN `" . BLABLABLA . "` AS `sDet` ON (`sDet`.`a` > '" . $R['a'] . "' 
     AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d` 
     AND `s`.`id` = `sDet`.`idDet` 
    ) 
    WHERE `s`.`f` = 'whatever' 

또는

SELECT * FROM `" . BLABLA . "` as `s` 
    JOIN `" . BLABLABLA . "` AS `sDet` ON (`s`.`id` = `sDet`.`idDet`) 
    WHERE `s`.`f` = 'whatever' 
     AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d` 
     AND `s`.`id` = `sDet`.`idDet` 

내가 생각 첫 번째 버전은 빨리해야하지만 난 모르겠어요. 이견있는 사람?

답변

0

나는 무엇이 더 빠르지는 모르겠지만 조건들이 언제 어디서나 on 절 사이에서 교환 할 수있는 것은 아니라는 점을 명심해야한다.

내부는 내부의 경우
들이 상호 교환

외부는 OUTER의 경우
들이 반드시 서로 호환되지 않습니다 가입에 가입되어 조인. 그것은 조인의 어느 쪽이 조건에 달려 있느냐에 달려있다.

+0

그것이 맞다. .. 그러나 나의 경우에는 어떤 문제도 아니다 :). 내가해야 할 일은 그 쿼리를 최적화하는 것입니다 (물론 ... 비슷한 것은 아니지만 9 개의 조인이 있습니다). – zozo