반응형
MySQL에서 EXPLAIN은
쿼리 튜닝 시에 주로 사용하게 되는데
대부분의 경우 쿼리 수행 시
인덱스(INDEX)를 타는지 확인하는 용도로 주로 사용하게 된다
근데 그걸 왜 확인해야 하냐면
데이터가 몇천만 건이 넘어가는 테이블의 경우
인덱스를 사용하지 않으면
조회 시 지나치게 오랜 시간이 걸리기 때문이다
사용법은 조회 쿼리 위에 EXPLAIN을 올려놓고 조회하면
위 스크린샷과 같은 조회결과를 볼 수 있는데
중요한 컬럼들은 다음과 같다
type > all 일 경우 인덱스 안탐 그 외에는 인덱스 탐
possible_keys > 쿼리 수행 시 탈법한 인덱스 리스트(쿼리 수행 시 알아서 결정함)
rows > 현재 쿼리 수행 시 출력될 것으로 예상되는 행 수
결론은 MySQL은 실제 업무에서 사용 시
별 생각없이 조회 때리다가 테이블에 데이터가 너무 많아
굳어버리는 현상이 상당히 많기 때문에
이건 오래 걸리겠다 싶으면
쿼리 수행 전 EXPLAIN을 사용해서
대략적인 소요 시간을 알아내는데 사용하게 되고
데이터가 많을 경우 인덱스를 타지 않을 경우
엄청나게 오랜 시간이 걸린다는 것을 알아둬야 한다
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL 테이블 이름 변경방법 (0) | 2021.04.12 |
---|---|
MySQL 인덱스 강제 지정 / 사용 권장 / 사용 금지 방법 정리 (0) | 2021.04.09 |
MySQL STR_TO_DATE 함수 포맷 사용방법 정리 (0) | 2021.04.08 |
MySQL DAYOFWEEK DAYOFMONTH DAYOFYEAR 사용방법 정리 (0) | 2021.04.06 |
MySQL ROWNUM 사용법 및 역순으로 배치하는 방법 (0) | 2021.03.30 |
댓글