🏆40

도전: 느린 쿼리 튜닝

Day 3: 같은 코드가 10배 빨라지는 비밀

학습 목표

복잡한 쿼리의 실행 계획을 분석할 수 있다 병목을 찾아 개선할 수 있다

요구사항

explain()으로 원본 쿼리 분석

Python UDF 제거

broadcast join 적용

필터 순서 최적화

개선 전후 실행 계획 비교

평가 기준
  • 문제점 분석 정확성 (20%)
  • UDF 제거 (20%)
  • Join 최적화 (20%)
  • 기타 최적화 (20%)
  • 개선 이유 설명 (20%)

미션: 프로덕션 쿼리 튜닝

아래 "느린 쿼리"를 분석하고 최적화하세요.

원본 쿼리 (느림)

에디터 로딩 중...

요구사항

  1. explain()으로 문제점 분석
  2. 최소 3가지 이상 개선
  3. 개선 전후 실행 계획 비교
  4. 개선 이유 설명
힌트 보기
col("quantity") * col("price")로 UDF 대체
products, categories는 작으니 broadcast
filter를 join 전에 배치
shuffle.partitions를 4~8로 조정
select("*") 대신 필요한 컬럼만