DISTINCT는 성능 저하를 일으킬 수 있다 — 중복 데이터 처리 시 GROUP BY로 대체하라
페이지 정보

영삼이
본문
✅ DISTINCT는 성능 저하를 일으킬 수 있다 — 중복 데이터 처리 시 GROUP BY로 대체하라
성능을 고려한 중복 제거 방법을 선택하자
❌ DISTINCT 사용 시 성능 문제
SELECT DISTINCT user_id
FROM orders
WHERE status = 'paid';
-
DISTINCT는 중복 데이터를 제거하기 위해 정렬 또는 해시 연산을 사용 -
대량 데이터에서 사용하면 성능 저하가 발생할 수 있음
✅ GROUP BY를 사용해 중복 제거
SELECT user_id
FROM orders
WHERE status = 'paid'
GROUP BY user_id;
-
GROUP BY는 이미 그룹화된 결과를 반환하므로 중복된 데이터를 제거 -
인덱스를 활용할 수 있어 성능에 유리
비교: DISTINCT vs GROUP BY
-
DISTINCT는 단순히 중복을 제거하는 데 사용 -
GROUP BY는 그룹화를 위한 필수적인 방법-
집계 함수(
SUM,COUNT,AVG등)와 함께 사용할 수 있기 때문에, 추후 확장성이 더 좋음
-
예시: DISTINCT 대신 GROUP BY 활용
SELECT user_id, COUNT(*)
FROM orders
WHERE status = 'paid'
GROUP BY user_id;
-
DISTINCT로 중복을 제거하는 것 대신GROUP BY로 그룹을 묶고 집계까지 같이 할 수 있음
✔️ DISTINCT는 간편하지만 성능을 저하시킬 수 있다.
GROUP BY는 성능 최적화뿐만 아니라 더 유연한 중복 제거 방법이므로,
가능한 경우 GROUP BY로 대체하는 것이 더 효율적이다.
- 이전글JOIN 후 필터링보다는 WHERE에서 필터링하는 게 성능에 유리하다 25.03.28
- 다음글EXPLAIN으로 실행 계획을 분석해 성능을 최적화하라 25.03.28
댓글목록
등록된 댓글이 없습니다.