2010-10-20 4 views
10

유니온이 여러 쿼리를 실행하는 것보다 낫다는 것을 알고 싶습니다.mysql union vs multiple queries

그렇다면 여러 가지 쿼리가 다른 이유로 더 빠르고 선호되는 경우가 있습니까?

+1

왜 투표가 늦습니까? – Yehosef

답변

9

UNION ALL을 사용하고 출력을 정렬하지 않으면 UNION의 성능은 쿼리가 UNIONING과 동일한 것으로 가정 할 경우 여러 개의 개별 쿼리 성능과 같아야합니다 함께. 데이터를 정렬하는 경우 분명히 오버 헤드를 부과하고 있습니다 (애플리케이션을 정렬 한 경우보다 적을지라도). ALL 키워드를 생략하면 MySQL은 결과를 표시하는 추가 작업을 수행합니다. 다시 말하지만,이 작업은 아마도 직접 수행하는 것보다 적지 만 추가 오버 헤드를 부과합니다.

0

"더 나은가요?"라고 묻습니다. "성능면에서 현명한"것을 말하는 것입니까?

속도에 미치는 영향이 미미하면 코드를 읽기 쉽게 유지하려면 여러 쿼리를 사용하는 것이 좋습니다. 여러 쿼리를 처리하는 대신 하나의 공용체에서 다른 작업을 수행합니다.

유스 케이스에 따라 다르다. 그러나 읽을 수 있고 이해할 수있는 코드는 장기적으로 더 큰 프로젝트에서 가치가있을 수도 있습니다.

+0

고마워요. 네, 더 의미있는 말입니다. 코드의 가독성은 실제로는 걱정할 필요가 없습니다. 왜냐하면 쿼리를 별도로 유지하고 코드 수준에서 "UNION"구문과 조인 할 수 있기 때문입니다. – Yehosef