티스토리 뷰

데이타베이스/Mysql

Mysql explain

프링글 2008. 6. 22. 14:53

SQL의 실행계획 보기(EXPLAIN)


[문법]

    EXPLAIN tbl_name
or  EXPLAIN SELECT select_options



EXPLAIN tbl_name

EXPLAIN tbl_name은 테이블의 구조를 나타냅니다.



EXPLAIN SELECT select_options

EXPLAIN SELECT select_options 은 SQL의 실행계획을 표시합니다.
결과에 나오는 항목으로는
table : 테이블 명
type : 조인의 타입
    system : 테이블이 하나의 레코드만 가지는 경우
    const : 테이블에 조건을 만족하는 레코드가 하나일 때, 상수 취급
    eq_ref : 인덱스가 UNIQUE이거나 PRIMARY KEY인 경우의 조인으로 const를 제외한 조인 중 가장 좋은 형태
    ref : eq_ref와 다른 점은 UNIQUE가 아닐 경우 사용한다는 것.
    range : 조건에 레코드의 범위가 주어진 조인.
    index : all 형태와 비슷하며, 인덱스를 사용한다.
    all : 모든 레코드를 스캔한다.
possible_keys : 테이블에서 사용 할 수 있는 키(인덱스)
key : possible_keys에 나온 키 중에서 실제로 사용한 키
key_len : 키의 길이
ref : 인덱스를 사용할 때 어떤 컬럼과 조건이 맞아야 하는지
rows : 조건을 만족하는 레코드를 찾기 위해 몇개의 레코드를 검사해야 하는지
Extra : 부가적인 정보
    distinct : 조건을 만족하는 레코드를 찾았을 때 같은 조건을 만족하는 또 다른 레코드가 있는지 검사하지 않음.
    not exist : left join 조건을 만족하는 하나의 레코드를 찾았을 때 다른 레코드의 조합은 더 이상 검사하지 않는다.
    range checked for each record : 최적의 인덱스가 없는 차선의 인덱스를 사용한다는 의미.
    using filesort : mysql이 정렬을 빠르게 하기 위해 부가적인 일을 한다.
    unsing index : select 할때 인덱스 파일만 사용
    using temporary : 임시 테이블을 사용한다. order by 나 group by 할때 주로 사용
    where used : 조건을 사용한다는 의미.

'데이타베이스 > Mysql' 카테고리의 다른 글

Mysql - 튜닝 (최적화)  (0) 2008.06.22
Oracle rank 함수 Mysql 사용가능?  (2) 2008.06.22
Mysql 서버 5.0의 신기능  (0) 2008.06.22
Mysql Explain 정보보는법  (0) 2008.06.22
Mysql 주요함수  (0) 2008.06.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크