다음 쿼리를 타고 외부로 최적화 필터 하위 쿼리를합니까 서브 쿼리에서.는 조항
또는
는 하위 쿼리 조합 내에서 각 쿼리를 실행하고 (쿼리가 아마 제안으로)
하는 경우에는 다음과 같은 쿼리가 더 잘 수행 할 필터링을 위해 외부 쿼리에 결과를 반환합니다 :
select * from
(
select a, b
from c
where a = 'mung'
UNION
select a, b
from d
where a = 'mung'
)
order by b
분명히 쿼리 1은 유지 관리에 가장 적합하지만 이에 대한 많은 성과를 희생합니까?
어느 것이 가장 좋습니까?
편집 나는이 모든 첫 번째 장소에서 하위 쿼리로 필요한 이유를 나타 내기 위해 쿼리에서 by 절 순서를 추가 무시 죄송합니다!
편집 좋아, 나는 간단한 답이 될 것이라고 생각했지만 데이터베이스에 대해 이야기하는 것을 잊어 버렸다. 분석기를 통해 실행하면 최적화가 수행되지 않는다는 것을 나타내지 만, 물론 테이블에 4 개의 행만 있기 때문에 가능합니다. 더 간단한 예 또는 아니오를 기대하고있었습니다. 좀 더 복잡한 테스트를 설정해야합니다.
나는 순간에 MySQL을,하지만 내가 여기에 일반적인 대답 후 나는 ...
내 자신의 무지 될 수있을 것입니다 그런데 왜 최적화를 요구하지 무엇을 제안 된 실행 계획 (실행 계획 보여주기)을 묻고이를 어떻게 공격하는지 살펴봄으로써 수행 할 것입니다. 분명히 완전한 그림은 아니지만, 그것이 무엇을 암시하고 사용하는지 알 수 있습니다. – GrayWizardx
IT는 책임을집니다. 때로는 그럴 것이고 때로는 그렇지 않을 수도 있습니다. 해당 UNION을 UNION으로 변경하면 더 자주 * will *됩니다. – RBarryYoung
그리고 그것은 확실히 당신이 사용하고있는 SQL의 브랜드, 에디션 및 버전에 따라 매우 달라집니다. – RBarryYoung