데이터베이스/RDBMS (4) 썸네일형 리스트형 [MYSQL] 기본 실행 계획 분석 - 2 MYSQL SQL문의 기본실행계획분석: https://juboxer.tistory.com/130 [MYSQL] 기본 실행 계획 분석 - 1MYSQL SQL문의 기본실행계획분석: EXPLAIN 명령어를 통해 SQL의 실행계획을 분석할 수 있다. 이를 통해 SQL문이 효율적으로 혹은 비효율적으로 수행되지 않는지, 비효율적으로 수행된다면 어떻게 튜닝juboxer.tistory.com 1. EXPLAIN 실행계획 분석을 통해서 SQL 튜닝을 어떻게 접근 할지 분석한다. 2. 실행계획 어려웠던 부분 재확인 (* 스토리지 엔진, MySQL 엔진, 필터링 데이터 .. 등) 1. 실행계획 상 스토리지 엔진으로부터 데이터를 조회하는 방식이 효과적인 방법인가?KEY : PRIMARY , TYPE : RANGE이므로, .. [MYSQL] 기본 실행 계획 분석 - 1 MYSQL SQL문의 기본실행계획분석: EXPLAIN 명령어를 통해 SQL의 실행계획을 분석할 수 있다. 이를 통해 SQL문이 효율적으로 혹은 비효율적으로 수행되지 않는지, 비효율적으로 수행된다면 어떻게 튜닝을 해야 하는지 감을 잡을 수 있다.EXPLAINSELECT 사원.사원번호, 급여.연봉FROM 사원, (SELECT 사원번호, MAX(연봉) AS 연봉 FROM 급여 WHERE 사원번호 BETWEEN 10001 AND 20000 GROUP BY 사원번호) AS 급여WHERE 사원.사원번호 = 급여.사원번호; 1. 인덱스 스캔 VS 테이블 풀 스캔을 비교해야 한다. → 사례 중심으로 정리2. 난이도 높은 개념 : Extra - Using Temprory , Type - ref, index.. [MYSQL] 인덱스(INDEX) - 인덱스란? 인덱스란 무엇인가?: 카디널리티와 선택도의 이해도를 통해서, 인덱스의 개념과 원리를 정립 할 수 있다. 1. 정의 : 인덱스(Index)는 테이블에서 키(=특정컬럼) 값을 기준으로 실제 데이터의 위치를 식별하여, 데이터 접근 속도를 높이고자 생성되는 키-오브젝트(특정컬럼-데이터위치) 이다.수 많은 데이터가 있는 DB 를 풀 스캔 하여 데이터에 접근 하는 것은 비효율적이다.따라서, 원하는 컬럼의 데이터의 위치값을 저장하여 별도로 관리하는 것이다. 2. DB 와 키-오브젝트 인덱스 테이블의 관계1) 명단 테이블- 카디널리티가 높은 주민번호 컬럼을 인덱스로 지정했다. (* 포인터 컬럼은 시스템 내에 설정되는 컬럼이다.)순서이름주민번호성별거주지포인터(레코드 위치)1김길동911101남서울시10012이길동8712.. [MYSQL] 인덱스(INDEX) - 배경 설명 개념적인 튜닝 용어의 관한 정의: 카디널리티 와 선택도의 개념 및 관계를 인식해야, 효율적인 인덱스 생성이 가능 할 수 있다. 1. 선택도 : 테이블의 특정 열을 기준으로 해당 열의 조건절(WHERE 절)에 따라 선택 되는 데이터의 비율을 의미한다. 2. 카디널리티 : 전체 데이터에 접근한 뒤 출력될 것이라 예상되는 데이터 건수 각각의 개념을 이해하는 것보다 두 개념을 통합해서 이해하는게 인덱스 설정에 효율적이다 ※ 카디널리티 = 전체 데이터 건수 X 선택도( * 선택도 = 선택한 데이터_고유한 데이터_의 수 / 전체 데이터 개수)MYSQL에서 선택도 계산에 있어서, 고유한 데이터 라는 개념이 매우 중요하다. 앞선, 개념과는 반대되는 의미로 해석 될 수 있기 떄문이다. 아래 예시를 들어서, 해석해 보자... 이전 1 다음