8.8.1 EXPLAIN으로 쿼리 최적화
EXPLAIN
문을 사용하여 MySQL이 문을 실행하는 방법에 대한 정보를 얻을 수 있습니다.
MySQL 5.6.3 현재
EXPLAIN
사용할 수있는 설명 가능한 문은SELECT
,DELETE
,INSERT
,REPLACE
및UPDATE
입니다. MySQL 5.6.3 이전에서는SELECT
가 유일한 설명 가능한 문입니다.설명 가능한 문에서
EXPLAIN
을 사용하면 MySQL은 최적화에서 문 실행 계획에 대한 정보를 표시합니다. 즉, MySQL은 테이블이 어떻게 어떤 순서로 결합되어 있는지에 대한 정보를 포함하여 문을 처리하는 방법을 설명합니다.EXPLAIN
을 사용하여 실행 계획 정보를 얻을 내용은 섹션 8.8.2 "EXPLAIN 출력 형식" 을 참조하십시오.EXPLAIN EXTENDED
를 사용하여 추가의 실행 계획 정보를 얻을 수 있습니다. 섹션 8.8.3 "EXPLAIN EXTENDED 출력 형식" 을 참조하십시오.EXPLAIN PARTITIONS
는 분할 된 테이블을 포함하는 쿼리의 조사에 도움이됩니다. 섹션 19.3.5 "파티션에 대한 정보를 얻기" 를 참조하십시오.MySQL 5.6.3 현재
FORMAT
옵션을 사용하여 출력 포맷을 선택할 수 있습니다.TRADITIONAL
는 표 형식으로 출력을 표시합니다.FORMAT
옵션이 존재하지 않는 경우 이것이 기본값입니다.JSON
형식은 JSON 형식으로 정보를 표시합니다.FORMAT = JSON
을 사용하면 출력에는 확장 된 파티션 정보가 포함되어 있습니다.
EXPLAIN
에 의해 인덱스를 사용하여 행을 찾을 수 문이 빠르게 실행되도록 테이블에 인덱스를 추가할지 알 수 있습니다. 또한 EXPLAIN
을 사용하여 최적화가 테이블을 최적의 순서로 결합하고 있는지 여부를 확인 할 수 있습니다. SELECT
문에 테이블이 지정되는 순서에 대응하는 결합 순서를 사용하도록 최적화 팁을 제공하려면 문을 SELECT
뿐만 아니라 SELECT STRAIGHT_JOIN
로 시작합니다. ( 섹션 13.2.9 "SELECT 구문" 을 참조하십시오.)
인덱스가 사용되는 것이다 생각 타이밍에서 그들이 사용되지 않은 문제가있는 경우, ANALYZE TABLE
을 실행하여 Optimizer는 사용자 선택에 영향을 미칠 수있는 키의 중요도 등의 테이블 통계를 업데이트 합니다. 섹션 13.7.2.1 "ANALYZE TABLE 구문" 을 참조하십시오.
EXPLAIN
테이블의 컬럼에 대한 정보를 얻기 위해 사용할 수 있습니다. EXPLAIN
은 tbl_name
DESCRIBE
및 tbl_name
SHOW COLUMNS FROM
과 동의어이다. 자세한 내용은 섹션 13.8.1 "DESCRIBE 구문" 및 섹션 13.7.5.6 "SHOW COLUMNS 구문" 을 참조하십시오. tbl_name