[MYSQL] 실행 계획 수행 - rows, filtered, extra
기본 실행 계획 항목 분석 id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, extra rows SQL문을 수행하고자 접근하는 데이터의 모든 행(row)수를 나타내는 예측 항목 수시로 변동되는 MYSQL의 통계정보를 참고하여 산출하는 값이므로 수치가 정확하지 않음 최종 출력될 행 수 가 아니라는 점에 유의해야 함 SQL문의 최종 결과 건수와 비교해 rows 수가 크게 차이 날 때는 SQL 튜닝 대상 filtered SQL문을 통해 DB 엔진으로 가져온 데이터 대상으로 필터 조건에 따라 어느 정도의 비율로 데이터를 제거했는지를 의미하는 항목 DB 엔진으로 100건의 데이터를 가져왔다고 가정 W..
2023. 7. 6.
[MYSQL] 실행 계획 수행 - possibile_keys, key, key_len, ref
기본 실행 계획 항목 분석 id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, extra possibile_keys 옵티마이저가 SQL문을 최적화하고자 사용할 수 있는 인덱스 목록을 출력 실제 사용한 인덱스가 아닌, 사용할 수 있는 후보군의 기본 키와 인덱스 목록만 보여줌 → SQL튜닝 효용성 없음 key 옵티마이저가 SQL문을 최적화하고자 사용한 기본 키(PK) 또는 인덱스명을 의미 어떤 인덱스로 데이터 검색했는지 확인 가능 → 비효율적인 인덱스를 사용, 인덱스 자체를 사용하지 않았다면 SQL 튜닝 대상 1. 기본 키(PK)로 데이터 접근 EXPLAIN SELECT 사원번호 FROM 직급 ..
2023. 7. 5.
[MYSQL] 실행 계획 수행 - table, partitions, type
기본 실행 계획 항목 분석 id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, extra table 테이블명을 표시하는 항목, 실행 계획 정보에 테이블명이나 테이블 별칭(alias)를 출력 서브쿼리나 임시 테이블을 만들어서 별도의 작업을 수행할 때는 라고 출력 EXPLAIN SELECT 사원.사원번호, 급여.연봉 FROM 사원, (SELECT 사원번호, MAX(연봉) as 연봉 FROM 급여 WHERE 사원번호 BETWEEN 10001 AND 20000 GROUP BY 사원번호) as 급여 WHERE 사원.사원번호 = 급여.사원번호; 첫번 째 행의 table 열 : , id = 1 두번 째 행..
2023. 7. 4.
[MYSQL] 실행 계획 수행 - id, select_type
기본 실행 계획 수행 실행계획 : SQL문으로 요청한 데이터를 어떻게 불러올 것인지에 관한 계획, 즉 경로를 의미 실행 계획 키워드 : EXPLAIN, DESCRIBE, DESC EXPLAIN SQL 문; DESCRIBE SQL 문; DESC SQL 문; MYSQL의 실행 계획 수행 SQL문 앞에 EXPLAIN 키워드를 입력하고 실행하면 옵티마이저가 만든 실행 계획 출력 DESC SELECT * FROM 사원 WHERE 사원번호 BETWEEN 100001 AND 200000; 결과 기본 실행 계획 항목 분석 id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, extra id 실행 순서를 표시하..
2023. 7. 2.