본문 바로가기

MYSQL13

[MYSQL] 확장된 실행 계획 수행 좋고 나쁨을 판단하는 기준 select_type 항목의 판단 기준 좋음 : SIMPLE, PRIMARY, DERIVED 나쁨 : DEPENDENT *, UNCACHEABLE * type 항목의 판단 기준 좋음 : system, const, eq_ref 나쁨 : index, all extra 항목의 판단 기준 좋음 : Using index 나쁨 : Using filesort, Using temporary MYSQL의 확장된 실행 계획 수행 | EXPLAIN FORMAT = TRADITIONAL | 실행 계획 확인하는 키워드 EXPLAIN 사용 → 기본 포맷 TRADITIONAL | EXPLAIN FORMAT =TREE | 트리형태로 추가된 실행 계획 항목 확인 EXPLAIN FORMAT = TREE.. 2023. 7. 7.
[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.
[MYSQL] 응용 용어2 콜레이션 특정 문자셋으로 데이터베이스에 저장된 값을 비교하거나 정렬하는 작업의 규칙을 의미 데이터 비교 숫자 비교 : 11 > 10 날짜 비교 : 2022/12/25 B > a > b utf8_general_ci : A > a > B > b 콜레이션은 데이터베이스 단위, 테이블 단위, 심지어 열 단위까지 세세하게 설정할 수 있음 학생 테이블의 콜레이션이 utf8_general_ci 로 설정되어 있다면 학번 열과 전공 코드 열에 콜레이션이 명시되어 있지 않더라도 utf8_general_ci 가 적용, 이때 만약 이름 열에 콜레이션 utf8_bin을 명시했다면.. 2023. 7. 1.