-
MariaDB ExplainDatabase 2022. 8. 22. 20:56SELECT, UPDATE 또는 DELETE 문 앞에 EXPLAIN 키워드가 있으면MariaDB는 쿼리 실행 계획에 대한 최적화 프로그램의 정보를 표시합니다.즉, MariaDB는 테이블이 조인되는 방법과 순서에 대한 정보를 포함하여SELECT, UPDATE 또는 DELETE를 처리하는 방법을 설명합니다.EXPLAIN EXTENDED를 사용하여 추가 정보를 제공할 수 있습니다.
Explain Columns
id 테이블이 조인되는 순서를 표시하는 Sequence 번호 select_type 어떤 종류의 SELECT 테이블에서 왔는지 table 테이블의 별칭 이름. 하위 쿼리의 경우 <subquery#> type 테이블에서 행을 찾는 방법(join 유형) possible_keys 테이블에서 행을 찾는데 사용할 수 있는 테이블의 키 key 행을 검색하는데 사용한 키의 이름. null은 사용된 키 없음 key_len 사용된 키의 바이트 수. (다중 열(multi-column) 키의 일부만 사용 중인지 표시) ref 키 값으로 사용되는 참조 rows 각 키 조회에 대해 테이블에서 찾을 수 있는 행의 추정치 Extra 이 조인에 대한 추가 정보. select_type
여기는 한국말로 풀어쓰면 더 이해가지 않을 것 같아서 본문 그대로 옮김
DEPENDENT SUBQUERY The SUBQUERY is DEPENDENT. DEPENDENT UNION The UNION is DEPENDENT. DERIVED The SELECT is DERIVED from the PRIMARY. MATERIALIZED The SUBQUERY is MATERIALIZED. PRIMARY The SELECT is a PRIMARY one. SIMPLE The SELECT is a SIMPLE one. SUBQUERY The SELECT is a SUBQUERY of the PRIMARY. UNCACHEABLE SUBQUERY The SUBQUERY is UNCACHEABLE. UNCACHEABLE UNION The UNION is UNCACHEABLE. UNION The SELECT is a UNION of the PRIMARY. UNION RESULT The result of the UNION. LATERAL DERIVED The SELECT uses a Lateral Derived optimization type
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와 유사하지만 키 조회로 변환되는 하위 쿼리에 사용됩니다.EXPLAIN SELECT ... EXPLAIN FORMAT=JSON SELECT ... ANALYZE SELECT ... ANALYZE FORMAT=JSON SELECT ...
'Database' 카테고리의 다른 글
MariaDB Lock(실전) (0) 2023.04.01 MariaDB Index 1편 (0) 2023.03.20 HikariCP 설정 일부분 들여다 보기 (0) 2023.02.26 [MariaDB]CREATE DATABASE/USER, GRANT, FLUSH (0) 2021.04.27 [Oracle] User Password 만료 기간을 무기한으로 변경하는 방법 (0) 2021.04.20