반응형
오늘은 마리아디비의 쿼리 실행계획이 궁금한 날이다.
예전 기억에 MS-SQL의 경우 쿼리실행 계획을 하게 되면 문제가 되는 테이블과 예상 시간, 인덱스 등에 대해 좀더 자세히 볼 수 있었던 것 같은데 마리아디비에서는 잘 모르겠다.
쿼리 실행계획을 수행하기 위해서는
EXPLAIN 쿼리
결과로 나온 내용은 무슨 말인지 전혀 모르겠다. 마리아디비 사이트에서 한글 번역을 해서 참조로 올려둔다.
id | 순서 테이블이 조인되는 순서를 나타내는 순서 번호입니다. |
select_type | 어떤 종류의 SELECT테이블이 나옵니다. |
table | 테이블의 별명 이름. 하위 쿼리의 구체화 된 임시 테이블 이름은 <subquery #>입니다. |
type | 테이블에서 행을 찾는 방법 (결합 유형) |
possible_keys | 테이블에서 행을 찾는 데 사용할 수있는 테이블의 키 |
key | 행을 검색하는 데 사용되는 키의 이름입니다. NULL키가 사용되지 않았습니다. |
key_len | 사용 된 키의 바이트 수 (다중 열 키의 일부만 사용중인 경우 표시) |
ref | 키 값으로 사용되는 참조입니다. |
rows | 각 키 조회에 대해 표에서 찾을 행 수의 추정치입니다. |
Extra | 이 조인에 대한 추가 정보. |
select_type에 대한 내용
DEPENDENT SUBQUERY | 는 SUBQUERY것입니다 DEPENDENT. |
DEPENDENT UNION | 는 UNION것입니다 DEPENDENT. |
DERIVED | 는 SELECT것입니다 DERIVED으로부터 PRIMARY. |
MATERIALIZED | 는 SUBQUERY것입니다 MATERIALIZED. |
PRIMARY | 는 SELECTA는 PRIMARY하나. |
SIMPLE | 는 SELECTA는 SIMPLE하나. |
SUBQUERY | 는 SELECTA는 SUBQUERY의 PRIMARY. |
UNCACHEABLE SUBQUERY | 는 SUBQUERY것입니다 UNCACHEABLE. |
UNCACHEABLE UNION | 는 UNION것입니다 UNCACHEABLE. |
UNION | 는 SELECTA는 UNION의 PRIMARY. |
UNION RESULT | 의 결과 UNION. |
유형에 대한 내용
ALL | 테이블에 대한 전체 테이블 스캔이 수행됩니다 (모든 행을 읽습니다). 테이블이 크고 테이블이 이전 테이블에 대해 조인 된 경우 이는 좋지 않습니다! 이것은 옵티마이 저가 행에 액세스하기 위해 사용 가능한 인덱스를 찾을 수 없을 때 발생합니다. |
const | 테이블에 일치하는 행이 하나만 있습니다. 최적화 단계 전에 행을 읽고 테이블의 모든 열을 상수로 처리합니다. |
eq_ref | 고유 색인은 행을 찾는 데 사용됩니다. 이것은 행을 찾는 가장 좋은 계획입니다. |
fulltext | 전체 텍스트 인덱스는 행에 액세스하는 데 사용됩니다. |
index_merge | 여러 인덱스에 대해 '범위'액세스가 수행되고 발견 된 행이 병합됩니다. 키 열에는 사용되는 키가 표시됩니다. |
index_subquery | 이것은 ref와 비슷하지만 키 조회로 변환되는 하위 쿼리에 사용됩니다. |
index | 사용 된 인덱스에 대한 전체 스캔. ALL보다 우수하지만 인덱스가 크고 테이블이 이전 테이블에 대해 조인 된 경우 여전히 나쁩니다. |
range | 테이블은 하나 이상의 값 범위에 대한 키로 액세스됩니다. |
ref_or_null | 'ref'와 비슷하지만 첫 번째 값을 찾지 못하면 'null'값에 대한 다른 검색이 수행됩니다. 이것은 일반적으로 하위 쿼리에서 발생합니다. |
ref | 고유 색인의 고유하지 않은 색인 또는 접 두부가 행을 찾는 데 사용됩니다. 접두사가 많은 행과 일치하지 않으면 좋습니다. |
system | 테이블에 0 개 또는 1 개의 행이 있습니다. |
unique_subquery | 이것은 eq_ref와 비슷하지만 주요 조회로 변환되는 하위 쿼리에 사용됩니다. |
반응형
'프로그래밍 > DataBase' 카테고리의 다른 글
Cannot truncate a table referenced in a foreign key constraint 오류 회피 방법. (0) | 2024.06.25 |
---|---|
Workbench - Lost connection to MySQL server during query (0) | 2023.04.04 |
MySQL 백업과 복원 명령어 (0) | 2023.02.22 |