새소식

반응형
DB/RealMySQL8.0

[MySQL] 10장 실행계획(2)

  • -
반응형

10장은 1,2,3의 하위 내용이 존재하는데

실행계획(1)에서는 1,2에 해당하는 통계 정보, 실행 계획 확인을 살펴 보았고

이번에는 3에 해당하는 실행 계획 분석을 살펴보자.

 

실행 계획 분석

실행 계획의 출력 내용을 통해서

  • 어떤 접근 방법을 사용해서
  • 어떤 최적화를 수행하는지 그리고
  • 어떤 인덱스를 사용하는지 등을 이해해야한다.

실행 계획 결과의

각 라인(레코드)은 쿼리 문장에서 사용된 테이블의 개수만큼 출력 

실행 순서는 위에서 아래로 순서대로 표시된다.

 

이제 실행 계획에 표시되는 각 칼럼의 의미와 값은 어떤것이 있는지 살펴보자.

 

  • id 칼럼
    • 단위 select 쿼리별로 부여되는 식별자 값 
    • 하나의 select 문장 안에서 여러 개의 테이블을 조인하면 조인되는 테이블의 개수만큼 레코드가 출력되지만 id 값은 같다
  • select_type 칼럼
    • 단위 select 쿼리가 어떤 타입의 쿼리인지 표시되는 칼럼
    • simple : union이나 서브쿼리를 사용하지 않은 단순한 select 쿼리
    • primary : union이나 서브쿼리를 가지는 select 쿼리의 가장 바깥쪽에 있는 쿼리 
    • union : union으로 결합하는 단위 select 쿼리 가운데 첫 번째를 제외한 두 번째 이후 단위 select 쿼리 , 첫 번째는 derived
    • .. 다양한데 생략.. 추후 궁금하면 찾아보도록
  • table 칼럼
    • dual 과 같은 내용은 NULL로 표시된다
    • <derived N>, <union M,N>과 같이 <>로 둘러싸인 이름이 명시되는 경우도 존재 -> 임시 테이블을 의미 
  • partitions 칼럼
    • 파티션 정보
  • type 칼럼
    • 어떤 방식으로 레코드를 읽었는지를 나타낸다
    • const : 프라이머리 키나 유니크 키 칼럼을 이용해서 where 조건절을 가지고 있으며 반드시 1건을 반환
    • eq_ref : 여러 테이블이 조인되는 쿼리의 실행 계획에 포함,
      조인에서 두 번째 이후에 읽는 테이블에서 반드시 1건만 존재하는 경우
    • ref : 인덱스의 종류와 관계없이 동등 조건으로 검색할 때 접근 방법 
    • range : 인덱스 레인지 스캔 형태의 접근 방법
    • index : 인덱스를 처음부터 끝까지 읽는 인덱스 풀 스캔
    • ALL : 풀 테이블 스캔 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'DB > RealMySQL8.0' 카테고리의 다른 글

[MySQL] 10장 실행 계획(1)  (0) 2025.05.04
[MySQL] 인덱스와 스캔 튜닝  (1) 2025.05.01
[MySQL] 9장 옵티마이저와 힌트  (0) 2025.04.27
[MySQL] 8장 인덱스  (1) 2025.04.18
[MySQL] 4장 아키텍처  (0) 2025.01.12
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.