2017-05-17 1 views
0

만족스러운 답변없이 잘못 닫혔다 고 생각하기 때문에이 질문을 다시 부탁합니다. 원래 질문 : 테이블 A의 수가 상당히 적은 큰 데이터 세트를 다룰 때 행을 B와 비교할 때 표 A를 B와 결합하고 B를 A와 결합하는 것 사이에 어떤 차이가 있습니까? A JOIN B vs B JOIN AA JOIN B와 B JOIN A의 차이점

+0

해당 쿼리의 성능에 영향을 줄 수있는 항목이 너무 많아서 질문에 명시된 것보다 많은 부분이 너무 많아서 닫힌 것 같습니다. IOW, 그렇게 단순하지 않습니다. –

답변

1

따라서 두 테이블에서 일치하는 기록을 가져옵니다 가입 그렇게 논리적으로 차이

0

예 없습니다. 큰 차이가있을 수 있습니다. 정규 JOIN을 수행 할 때 MySQL은 2 개의 테이블을 조인 할 순서를 자동으로 검색합니다. 그러나 때때로, 그것이 가기로 결정하는 방식이 최선이 아닙니다. 큰 테이블에 Index가 있고 작은 테이블이 없거나 tempTable 인 경우에 특히 그렇습니다. MySQL은 인덱싱되지 않은 테이블을 기본 테이블로 사용하는 것보다 인덱스를 사용하는 경향이 있습니다. 최근에 몇 초가 걸리는 쿼리가있었습니다. A가 BIG이고 지수가 매겨졌고 B가 작 았던 A JOIN B의 경우였습니다. A RIGHT JOIN B로 업데이트하면 성능이 몇 분의 1 초로 향상되었습니다.

+0

귀하의 질문은'JOIN'에 관한 것입니다. 이 대답은 테이블의 _ 특정 순서 때문에 쿼리가 다르게 수행된다고 말하지 않으며, 인덱스 및/또는'RIGHT' 문제가 아닙니다. 그것은 다른 문제입니다. –

+0

그리고 그렇습니다. 옵티마이 저는 인덱스 등을 기반으로하는 몇 가지 가이드 라인을 가지고 있지만, 'A JOIN B'와 'B JOIN A'는 포함하지 않습니다. –