• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
    1. DESCRIBE 구문
    2. EXPLAIN 구문
    3. HELP 구문
    4. USE 구문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.8.2 EXPLAIN 구문

{EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild] {EXPLAIN | DESCRIBE | DESC} [explain_type] explainable_stmt explain_type: { EXTENDED | PARTITIONS | FORMAT = format_name } format_name: { TRADITIONAL | JSON } explainable_stmt: { SELECT statement | DELETE statement | INSERT statement | REPLACE statement | UPDATE statement }

DESCRIBE 문과 EXPLAIN 문은 동의어입니다. 사실, DESCRIBE 키워드가 테이블 구조에 대한 정보를 얻기 위해 더 자주 사용되는 반면, EXPLAIN 는 쿼리 실행 계획 (즉, MySQL이 쿼리를 어떻게 실행하는지 설명)을 취득 하는 데 사용됩니다. 다음의 설명에서는 DESCRIBE 및 EXPLAIN 키워드를 그런 용도에 따라 사용하지만, MySQL 파서는 이들을 완전히 동의어로 처리합니다.

테이블 구조에 대한 정보 검색

DESCRIBE 는 테이블의 컬럼에 대한 정보를 제공합니다.

mysql> DESCRIBE City;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name       | char(35) | NO   |     |         |                |
| Country    | char(3)  | NO   | UNI |         |                |
| District   | char(20) | YES  | MUL |         |                |
| Population | int(11)  | NO   |     | 0       |                |
+------------+----------+------+-----+---------+----------------+

DESCRIBE 는 SHOW COLUMNS 의 바로 가기입니다. 이 문은 또한 뷰에 대한 정보도 표시합니다. SHOW COLUMNS 의 설명에서는 출력 컬럼에 대해 더 많은 정보가 제공됩니다. 섹션 13.7.5.6 "SHOW COLUMNS 구문" 을 참조하십시오.

기본적으로 DESCRIBE 는 그 테이블의 모든 컬럼에 대한 정보를 표시합니다. col_name (지정된 경우) 해당 테이블의 컬럼의 이름입니다. 이 경우 문은 지정된 컬럼의 정보 만 표시합니다. wild (지정된 경우)는 패턴 문자열입니다. 여기에는 SQL의 ' % '와' _ '와일드 카드 문자를 포함 할 수 있습니다. 이 경우 문은 문자열과 일치하는 이름을 가지는 컬럼의 출력 만 표시합니다. 공백이나 다른 특수 문자가 포함되어 있지 않은 한,이 문자열을 따옴표로 묶을 필요가 없습니다.

DESCRIBE 문은 Oracle과의 호환성을 위해 제공되고 있습니다.

또한 SHOW CREATE TABLE , SHOW TABLE STATUS 및 SHOW INDEX 문은 테이블에 대한 정보도 제공됩니다. 섹션 13.7.5 "SHOW 구문" 을 참조하십시오.

실행 계획에 대한 정보 검색

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.5의 시점에서는 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 구문" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved