GROUP BY 쿼리를 사용할 때 내부적으로
MAX 속도 차이가 나는지 궁금합니다.
실행계획은 동일한 것 같아서요
* 테이블 : 상품 테이블 , 매출테이블
1.
SELECT A.매장, A.상품, B.상품명, A.거래처, SUM(A.매출) AS 매출
FROM 매출테이블 A
INNER
JOIN 상품테이블 B
ON B.상품 = A.상품
GROUP BY A.매장, A.상품, B.상품명, A.거래처
;
2.
SELECT A.매장, A.상품, MAX(B.상품명) AS 상품명, MAX(A.거래처) AS 거래처, SUM(매출) AS 매출
FROM 매출테이블 A
INNER
JOIN 상품테이블 B
ON B.상품 = A.상품
GROUP BY A.매장, A.상품
"MAX는 속도가 느리다고 알고 있으니 MAX를 안쓰고 GROUP BY를 쓰는 경우"
잘못된 상식입니다.
GROUP BY 나 MAX 는 성능을 위해 쓰는게 아니라 필요에 의해서 써야 합니다.
GROUP BY 를 이용한 집계에 대한 정확한 이해를 한 뒤에
두 쿼리가 정확하게 동일한 쿼리라는 것을 명확하게 인지하고
두 쿼리 중 어느 쿼리를 선택할지는 코딩 스타일 선호도라고 생각합니다.
성능은 중요한 요소이지만 정확한 결과는 기본입니다.
중요도는 비중(더 중요하고 덜 중요하고)이 있지만, 기본은 반드시 지켜야 합니다.
기본이 지켜지지 않은 상태에서는 성능은 무의미합니다.