SQL

SQL

EXPLAIN으로 실행 계획을 분석해 성능을 최적화하라

페이지 정보

profile_image
영삼이
0건 46회 25-03-28 15:25

본문

EXPLAIN으로 실행 계획을 분석해 성능을 최적화하라

쿼리가 느리다면 실행 계획을 확인하자


❌ 성능이 느린 쿼리

SELECT * 
FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE o.status = 'paid';
  • 쿼리 성능이 느려질 수 있는 원인

    • 인덱스를 사용하지 않거나 잘못된 인덱스 사용

    • 조인 순서나 필터링 순서가 비효율적일 수 있음


EXPLAIN으로 실행 계획 분석

EXPLAIN SELECT * 
FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE o.status = 'paid';
  • EXPLAIN은 쿼리가 어떻게 실행되는지 실행 계획을 보여줌

  • 인덱스 사용 여부, 조인 순서, 파일 읽기 순서 등을 확인할 수 있음


예시: 실행 계획 확인

EXPLAIN SELECT user_id, COUNT(*) 
FROM orders 
WHERE status = 'paid'
GROUP BY user_id;
  • 출력 예시에서 Using index 또는 Using where 같은 정보를 확인

  • 이를 통해 인덱스를 잘 사용하고 있는지, 불필요한 테이블 스캔이 발생하는지 알 수 있음


추가 팁

  • 인덱스 사용 여부: Using index가 표시되면 인덱스를 잘 사용하고 있다는 의미

  • 전체 테이블 스캔: ALL이 표시되면 테이블 전체를 스캔하고 있다는 의미

  • 조인 순서 최적화: 실행 계획에서 조인 순서를 확인하고, 효율적인 순서로 변경할 수 있음


✔️ 쿼리가 느릴 때는 EXPLAIN을 사용해 실행 계획을 분석하는 것이 첫걸음이다.
쿼리 성능 문제를 해결하려면 실행 계획을 분석하고, 인덱스나 조인 순서를 최적화하는 게 중요하다.

댓글목록

등록된 댓글이 없습니다.