Loading...
MySQL 9.5 Reference Manual 9.5의 10.8.1 Optimizing Queries with EXPLAIN의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
EXPLAIN statement는 MySQL이 statement를 어떻게 실행하는지에 대한 정보를 제공합니다:
EXPLAIN는
SELECT,
DELETE,
INSERT,
REPLACE, 및
UPDATE statement와 함께 동작합니다.
explain 가능한 statement와 함께
EXPLAIN를 사용하면, MySQL은 그 statement 실행 계획에 대한 옵티마이저 정보를 표시합니다. 즉, MySQL은 테이블이 어떻게 조인되고 어떤 순서로 처리되는지를 포함하여, statement를 어떻게 처리할 것인지 설명합니다.
EXPLAIN을 사용하여 실행 계획 정보를 얻는 방법에 대한 내용은 Section 10.8.2, “EXPLAIN Output Format”을 참조하십시오.
explain 가능한 statement 대신 FOR CONNECTION connection_id와 함께
EXPLAIN을 사용하면, 지정된 커넥션에서 실행 중인 statement에 대한 실행 계획을 표시합니다. 자세한 내용은 Section 10.8.4, “Obtaining Execution Plan Information for a Named Connection”를 참조하십시오.
SELECT statement의 경우,
EXPLAIN은
SHOW WARNINGS를 사용하여 표시할 수 있는 추가 실행 계획 정보를 생성합니다. 자세한 내용은 Section 10.8.3, “Extended EXPLAIN Output Format”을 참조하십시오.
EXPLAIN은 파티션 테이블이 관련된 쿼리를 검사하는 데 유용합니다. 자세한 내용은 Section 26.3.5, “Obtaining Information About Partitions”를 참조하십시오.
FORMAT 옵션을 사용하여 출력 형식을 선택할 수 있습니다. TRADITIONAL은 결과를 테이블 형식으로 표시합니다. 이는 FORMAT 옵션이 없을 때의 기본값입니다.
JSON 형식은 정보를 JSON 형식으로 표시합니다.
EXPLAIN을 사용하면, statement가 행을 찾기 위해 인덱스를 사용함으로써 더 빠르게 실행되도록 테이블에 인덱스를 어디에 추가해야 하는지 확인할 수 있습니다. 또한
EXPLAIN을 사용해서 옵티마이저가 테이블을 최적의 순서로 조인하는지 여부를 확인할 수 있습니다. 옵티마이저에게
SELECT statement에 지정된 테이블 이름의 순서에 상응하는 조인 순서를 사용하도록 힌트를 주려면, statement를
SELECT만 사용하는 대신 SELECT STRAIGHT_JOIN으로 시작하십시오. (자세한 내용은 Section 15.2.13, “SELECT Statement”를 참조하십시오.) 그러나
STRAIGHT_JOIN은 세미조인 변환을 비활성화하기 때문에 인덱스 사용을 방해할 수 있습니다. Optimizing IN and EXISTS Subquery Predicates with Semijoin Transformations을 참조하십시오.
옵티마이저 트레이스는 경우에 따라
EXPLAIN의 정보를 보완하는 정보를 제공할 수 있습니다. 그러나 옵티마이저 트레이스의 형식과 내용은 버전 간에 변경될 수 있습니다. 자세한 내용은
Section 10.15, “Tracing the Optimizer”를 참조하십시오.
인덱스가 사용되어야 한다고 생각함에도 사용되지 않는 문제가 있는 경우,
ANALYZE TABLE을 실행하여 키의 카디널리티와 같이 옵티마이저의 선택에 영향을 줄 수 있는 테이블 통계를 업데이트하십시오. 자세한 내용은
Section 15.7.3.1, “ANALYZE TABLE Statement”를 참조하십시오.
참고
EXPLAIN은 테이블의 컬럼에 대한 정보를 얻기 위해서도 사용할 수 있습니다.
EXPLAIN tbl_name은
DESCRIBE tbl_name 및
SHOW COLUMNS FROM tbl_name과 동의어입니다. 자세한 내용은 Section 15.8.1, “DESCRIBE Statement” 및
Section 15.7.7.6, “SHOW COLUMNS Statement”를 참조하십시오.
10.8 Understanding the Query Execution Plan
10.8.2 EXPLAIN Output Format