나는 다음과 같은 테이블이있는 경우 :내부에 JOIN ON 절이 있습니까?
table_a
id | name |tbl_b_key| status
-----+---------+---------+--------
0 | a | 1 | 0
1 | b | 2 | 0
2 | c | 3 | 1
table_b
id | type | status
-----+---------+---------
0 | a | 0
1 | b | 0
2 | b | 1
3 | a | 1
이 두 쿼리 간의 성능면에서 어떤 차이가 있습니까?
SELECT table_a.name, table_b.type FROM table_a JOIN table_b ON (table_a.status = table_b.status AND table_b.type = a);
SELECT table_a.name, table_b.type FROM table_a JOIN table_b ON (table_a.status = table_b.status) WHERE table_b.type = a;
내 이해 첫 번째 쿼리는 다음 조인 어디에 수행 못하다 결합되는 열의 양을 감소로서 첫 번째 질의가 빠르게 될 것이다. 아니면 둘 사이에 실제 차이점이 있습니까?
편집 : 지적한대로 내 첫 번째 쿼리에서 실수를했습니다. 이제 수정되었습니다.
무슨 말을 EXPLAIN는 무엇입니까? SHOW WARNINGS로 EXPLAIN EXTENDED를 따르는 것이 무엇보다 좋습니다. 말하다?? – Strawberry
첫 번째 문법 오류,'... ON (table_a.status = table_b.status AND table_b.type = a)'을 의미합니까? – mata
@mata : 거기에 수정했다, 당신은 옳았다. – Peck3277