티스토리 뷰
전에 정리한 책 내용인데..
explain select * from jun_board_db where seq_num > 1;
위와 같은 쿼리를 실행하였을때.. 다음과 같은 결과가 나왔다.
+--------------+------+-------------------+------+-------------+------+------+--------------+
| table | type | possible_keys| key | key_len | ref | rows | Extra |
+--------------+------+-------------------+------+--------------+-------+------+------------+
| jun_board_db | ALL | PRIMARY | NULL | NULL | NULL | 8 | where used |
+--------------+------+-------------------+------+--------------+-------+------+------------+
속성을 대충본다면
* table : 조회테이블
* type : 조인의 타입을 의미하는데 7가지 종류의 결과가 출력될수 있다.
-------------------------------------------------------------------------------------------------------------------
-> system : 아주 특별한 경우로 테이블이 하나의 레코드만 가지는 경우를 의미한다.
-> const : 매우 빠른 조인의 타입으로 테이블에 조건을 만족하는 레코드가 하나일 때 이값이 출력됨. 상수로 취급된다는 의미..
-> eq_ref : 인덱스가 UNIQUE이거나 PRIMARY KEY인 경우의 조인으로 CONST를 제외한 조인 중 가장 좋은 조인의 형태이다.
-> ref : 다른 테이블의 조건을 만족하는 레코드를 테이블에서 인덱스를 사용하여 검색하는 조인의 형태로 eq_ref 다음으로 좋음.
인덱스가 UNIQUE나 PRIMARY KEY가 아닌 경우 사용되는 조인의 형태
-> range : 조건에 레코드의 범위가 주어진 조인을 말함
-> index : ALL과 동일하지만 인덱스 파일을 사용하게 된다는 점이 다름
인덱스를 사용하게 되므로 ALL보다는 빠름
-> ALL : 풀스캔을 의미한다.
* possible_keys : 테이블에서 사용할수 있는 키를 의미한다.
* key : possible_keys에 나온 키 중 실제로 사용한 키를 의미한다.
* key_len : 키의 길이를 나타낸다.
* ref : 인덱스를 사용할 때 어떤 칼럼과 조건이 맞아야 하는지 나타낸다.
* row : 조건을 만족하는 레코드를 찾기위해 몇 개의 레코드를 검사해야 하는지 나타낸다.
* Extra : mysql의 쿼리를 실행할 때 부가적인 정보를 나타내는 항목으로 다음과 같은 값을 가질 수 있다.
------------------------------------------------------------------------------------------------------------
->Distinct : 조건을 만족하는 결과를 찾았다면 더 이상 검사하지 않는다는 의미.
->Not exists : Mysql은 LEFT JOIN을 최적화할 수 있는 기능이 있는데, LEFT JOIN조건을 만족하는
하나의 레코드를 찾았을 때 다른 레코드들의 조합은 더 이상 검사하지 않는 다는 의미.
->range checked for each record : 최적의 인덱스가 없다면 차선의 인덱스를 사용한다는 의미.
->Using filesort : 정렬을 빠르게 하기위해 부가적인일을 한다는 의미.
->Using index : SELECT를 하기위해 인덱스 파일만 탐색한다는 의미. 데이터파일을 사용하지 않으므로 속도가 빠르당..
->Using Temporary : 특별한 경우를 위해 임시테이블을 만들어 사용한다는 의미. ORDER BY에 의한 SORT
->Where used : 조건을 주어 가져올 레코드에 제한을 두는 경우를 나타냄.. 참고 하세요
explain select * from jun_board_db where seq_num > 1;
위와 같은 쿼리를 실행하였을때.. 다음과 같은 결과가 나왔다.
+--------------+------+-------------------+------+-------------+------+------+--------------+
| table | type | possible_keys| key | key_len | ref | rows | Extra |
+--------------+------+-------------------+------+--------------+-------+------+------------+
| jun_board_db | ALL | PRIMARY | NULL | NULL | NULL | 8 | where used |
+--------------+------+-------------------+------+--------------+-------+------+------------+
속성을 대충본다면
* table : 조회테이블
* type : 조인의 타입을 의미하는데 7가지 종류의 결과가 출력될수 있다.
-------------------------------------------------------------------------------------------------------------------
-> system : 아주 특별한 경우로 테이블이 하나의 레코드만 가지는 경우를 의미한다.
-> const : 매우 빠른 조인의 타입으로 테이블에 조건을 만족하는 레코드가 하나일 때 이값이 출력됨. 상수로 취급된다는 의미..
-> eq_ref : 인덱스가 UNIQUE이거나 PRIMARY KEY인 경우의 조인으로 CONST를 제외한 조인 중 가장 좋은 조인의 형태이다.
-> ref : 다른 테이블의 조건을 만족하는 레코드를 테이블에서 인덱스를 사용하여 검색하는 조인의 형태로 eq_ref 다음으로 좋음.
인덱스가 UNIQUE나 PRIMARY KEY가 아닌 경우 사용되는 조인의 형태
-> range : 조건에 레코드의 범위가 주어진 조인을 말함
-> index : ALL과 동일하지만 인덱스 파일을 사용하게 된다는 점이 다름
인덱스를 사용하게 되므로 ALL보다는 빠름
-> ALL : 풀스캔을 의미한다.
* possible_keys : 테이블에서 사용할수 있는 키를 의미한다.
* key : possible_keys에 나온 키 중 실제로 사용한 키를 의미한다.
* key_len : 키의 길이를 나타낸다.
* ref : 인덱스를 사용할 때 어떤 칼럼과 조건이 맞아야 하는지 나타낸다.
* row : 조건을 만족하는 레코드를 찾기위해 몇 개의 레코드를 검사해야 하는지 나타낸다.
* Extra : mysql의 쿼리를 실행할 때 부가적인 정보를 나타내는 항목으로 다음과 같은 값을 가질 수 있다.
------------------------------------------------------------------------------------------------------------
->Distinct : 조건을 만족하는 결과를 찾았다면 더 이상 검사하지 않는다는 의미.
->Not exists : Mysql은 LEFT JOIN을 최적화할 수 있는 기능이 있는데, LEFT JOIN조건을 만족하는
하나의 레코드를 찾았을 때 다른 레코드들의 조합은 더 이상 검사하지 않는 다는 의미.
->range checked for each record : 최적의 인덱스가 없다면 차선의 인덱스를 사용한다는 의미.
->Using filesort : 정렬을 빠르게 하기위해 부가적인일을 한다는 의미.
->Using index : SELECT를 하기위해 인덱스 파일만 탐색한다는 의미. 데이터파일을 사용하지 않으므로 속도가 빠르당..
->Using Temporary : 특별한 경우를 위해 임시테이블을 만들어 사용한다는 의미. ORDER BY에 의한 SORT
->Where used : 조건을 주어 가져올 레코드에 제한을 두는 경우를 나타냄.. 참고 하세요
'데이타베이스 > Mysql' 카테고리의 다른 글
Mysql - 트랜잭션(begin/commit/rollback) (0) | 2008.06.22 |
---|---|
Mysql - InnoDB (0) | 2008.06.22 |
Mysql - MyiSAM 로우 저장 방식 비교 (0) | 2008.06.22 |
Mysql - 기본 참고사항 (2) (0) | 2008.06.22 |
Mysql 기본참고 사항 (0) | 2008.06.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크