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
댓글목록
등록된 댓글이 없습니다.