이것은 시험 문제였습니다. 지식이있는 사람이 설명에 대한 답을 줄 수 있습니까?from 절에서 조인을 최대화하고 where 절에서 조인을 최소화하십시오.
2
A
답변
2
대부분의 RDBMS 제품은 두 쿼리를 동일하게 최적화합니다.
Peter Gulutzan과 Trudy Pelzer가 작성한 SQL Performance Tuning에서 저자는 6 개 또는 8 개의 RDBMS 브랜드를 테스트했으며 두 가지 서로 다른 스타일의 조인간에 성능상의 차이가 없음을 발견했습니다. 따라서 성능이 인 경우 다른 구문보다 한 구문을 선호하지 않습니다. FROM
절에 JOIN
구문을 사용하는
이유는 다음과 같습니다
이 조인 구문을 SQL-89 (쉼표 스타일)에서 가능하지 않은 유형, 외부 조인과 같은 자연 조인에 가입 허용하려면
USING()
절 등표준 SQL-92 구문을 준수합니다. 모든 브랜드의 RDBMS는 수년간이 구문을 지원했으며 오라클과 Microsoft/Sybase도 과거에는 외부 조인을 위해 독점적 인 구문을 고안했습니다.
코드를 정리하고 사용중인 조인 유형 (내부, 외부) 및 조인 조건이 행 조건이되는 조건을 한눈에 알기 쉽도록하십시오. 대신
JOIN
구문의 쉼표 스타일의 구문을 사용하는
이유는 다음과 같습니다
- 없음, 키보드의 "J"키가 깨진 아마도 경우를 제외하고. ;-)
+0
설명을 끝내기에 좋은 방법입니다! 감사 :) – Somjit
관련 문제
- 1. from 절 또는 where 절에서 equi 조인을 수행하는 것이 더 나은가?
- 2. select 절에서 from 사용
- 3. WHERE 절에서 SELECT를 피하십시오.
- 4. sqllite where 절에서 선택하십시오.
- 5. JPQL WHERE 절에서 엔티티 비교가 어떻게 작동합니까?
- 6. IN vs = where 절에서
- 7. Where 절에서 관계
- 8. WHERE 절에서 열 별칭 사용
- 9. WHERE 절에서 CASE를 사용하는 방법
- 10. Where 절에서 OR을 얻으려면 어떻게해야합니까?
- 11. GqlQuery의 where 절에서 localtime 사용
- 12. WHERE 절에서 IF 문 사용
- 13. Where 절에서 쿼리의 변수가 무시됩니다.
- 14. WHERE 절에서 SELECT IF 사용
- 15. where 절에서 특정 값을 검색하십시오.
- 16. WHERE 절에서 MYSQL GROUP_CONCAT 사용
- 17. 다른 SELECT의 FROM 절에서 SELECT
- 18. 'where 절에서 알 수없는'check_in_id '열
- 19. where 절에서 용어 코드 선택
- 20. IN OR SQL where 절에서
- 21. where 절에서 조건을 최적화하는 SQL
- 22. Where 절에서 변수를 사용하여 쿼리
- 23. Hibernate는`from` 절에서 서브 쿼리를 지원합니까?
- 24. WHERE 절에서 연결된 서버와 함께 OPENQUERY 사용
- 25. FROM 절에서 대상 테이블을 업데이트하는 방법은 무엇입니까?
- 26. 열 WHERE 절에서 r.user_id를 찾을 수 없습니다.
- 27. where 절에서 조건을 지정하는 SQL Case 문?
- 28. WHERE 절에서 변수를 사용하면 쿼리가 영원히 지속됩니다.
- 29. # 1054 - 'where 절에서 알 수없는'max.ACCESS_DATE_TIME '열
- 30. WHERE 절에서 여러 변수 다시 사용
별로 없습니다. 'from' 절에서 조인 만하고'where' 절에서 암시 적 조인을 수행해서는 안됩니다 (상관 하위 쿼리 제외). –
where 절에 암시 적 조인을하면 'tabA.col1 = tabB.col1'을 의미하는 tabA에서'을 선택하십시오. –
Somjit
예. 간단한 규칙은'from' 절에 쉼표를 사용하지 마십시오. –