EXPLAIN과 DB 옵티마이저

LeeYulhee·2023년 11월 1일
0

👉 SQL문에서 EXPLAIN


  • 📌 EXPLAIN의 정의
    • MySQL 같은 RDBMS에서 SQL 쿼리의 실행 계획을 확인하기 위한 명령어
    • EXPLAIN을 사용하면 데이터베이스가 쿼리를 어떻게 처리할 것인지에 대한 계획을 볼 수 있음
  • 📌 실행 계획에 포함되는 정보
    • 어떤 인덱스가 사용될지
    • 데이터가 어떤 순서로 스캔될지
    • 조인이 어떻게 수행될지
    • 예상되는 처리 행 수 등
  • 📌 작성 예시
    EXPLAIN SELECT * FROM users WHERE user_id = 1;


👉 DB 옵티마이저


  • 📌 옵티마이저의 정의
    • 데이터베이스 관리 시스템(DBMS)의 구성 요소
    • 주어진 쿼리를 어떻게 가장 효과적으로 실행할 것인지를 결정
    • 옵티마이저의 주 목적은 쿼리의 실행 시간을 최소화하면서 결과의 정확성을 보장하는 것
  • 📌 옵티마이저 실행 과정
    • 여러 가능한 실행 전략들을 고려
    • 각 전략의 비용을 추정
    • 가장 효율적인 실행 전략을 선택
  • 📌 옵티마이저 중요성
    • 통계 정보(테이블의 크기, 인덱스의 구조, 데이터의 분포 등)를 사용하여 최적의 계획을 선정
      • 따라서, 데이터베이스의 통계 정보를 최신으로 유지하는 것이 중요



👉 EXPLAIN과 옵티마이저의 관계


  • EXPLAIN은 옵티마이저가 결정한 쿼리의 실행 계획을 검토할 때 사용하는 도구
    • 예를 들면, EXPLAIN 결과를 통해 사용되지 않는 인덱스나 불필요한 전체 테이블 스캔과 같은 비효율적인 쿼리 작성 부분을 발견하고 개선할 수 있음
  • 옵티마이저는 쿼리를 최적으로 실행하기 위한 계획을 만드는 역할
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글