
버전 확인 상용 DBMS와의 차이점 구조적 차이 기본적으로 MySQL과 오라클은 데이터가 저장되는 스토리지 구조 측면에서 큰 차이를 보인다. 오라클은 통합된 스토리지 하나를 공유하여 사용하는 방식이지만 MySQL은 물리적인 DB 서버마다 독립적으로 스토리지를 할당

사용자는 DB에서 원하는 데이터를 가져오고자 SQL문을 실행한다. 실행된 SQL문은 MySQL 엔진에서 문법 에러 여부, DB에 존재하는 테이블 대상으로 SQL문을 작성했는지와 같은 세부 사항들을 다양한 문법 및 구문으로 검사한다(parser가 수행). 이후 사용자가

서브쿼리란 쿼리 안의 보조쿼리를 가리키는 용어이다. 가장 바깥의 SELECT 문인 메인 쿼리를 기준으로 내부에 SELECT 문을 추가로 작성해서 서브쿼리를 만든다. 작성되는 위치에 따라 그 종류가 달라진다.메인쿼리는 SELECT 절에 있는 또 다른 SELECT

오브젝트 스캔 유형은 테이블 스캔과 인덱스 스캔으로 구분한다. 테이블 스캔은 인덱스를 거치지 않고 바로 디스크에 위치한 테이블 데이터에 접근하는 유형이며, 인덱스 스캔은 테이블 데이터를 찾아가는 유형이다. 인덱스를 거치지 않고 테이블로 바로 직행하여 처음부터 끝까지 데

실행 계획이란 SQL문으로 요청한 데이터를 어떤 경로로 불어올 것인지에 대한 계획을 의미한다.실행 계획을 확인하는 키워드로는 EXPLAIN , DESCRIBE , DESC 가 있다. 확인하고자 하는 쿼리 앞에 키워드를 작성하면 된다.실행 계획의 구성요소를 이해해보자.실

프로파일링은 마치 범죄수사에서 실마리를 찾으려 분석하는 수단처럼 SQL 문에서도 문제가 되는 병목 지점을 찾고자 사용하는 수단, 툴을 가리킨다. 위 커맨드를 통해 프로파일링의 설정값을 확인할 수 있다. MySQL은 기본 비활성화 설정으로 되어있으므로 활성화 작업을 해주

Key의 MUL은 해당 칼럼이 여러 개의 인덱스에 속할 수 있다는 것을 의미하며, 비고유 인덱스를 생성할 수 있는 뜻으로 받아들일 수도 있다.사원부서부서사원\_매핑부서관리자직급급여사원출입기록위 쿼리로 특정 테이블에 설정한 인덱스 목록을 조회할 수 있다. 예제 데이터에서

튜닝 전 SQL튜닝 전 수행 결과10건의 데이터가 조회되며, 0.33초가 소요되었다.튜닝 전 실행계획Type 항목이 ALL이므로 테이블 풀 스캔 방식이며, 인덱스를 사용하지 않는 형태로 비효율적인 것을 파악할 수 있다.튜닝 전 SQL문에서는 사원번호를 SUBSTRING

튜닝 전 SQL문부서사원\_매핑 테이블, 부서 테이블을 조인하여 부서 시작일자 ‘2002-03-01’이후인 사원의 데이터를 조회하는 쿼리이다.튜닝 전 수행 결과튜닝 전 실행 계획드라이빙 테이블인 부서와 드리븐 테이블인 부서사원\_매핑은 중첩 루프 조인을 수행한다.작은

튜닝 전 SQL문사원번호가 10001부터 10100번까지인 사람들의 평균연봉과 최고연봉, 최저연봉을 구하는 쿼리이다.튜닝 전 수행결과튜닝 전 실행계획드라이빙 테이블은 사원, 드리븐 테이블은 <derived2> 이다.<derived2> 테이블은 select_t

튜닝 전 SQL문튜닝 전 수행 결과튜닝 전 실행 계획테이블 풀 스캔을 통해 주어진 쿼리를 수행한다.단 1건의 데이터를 조회하기 위해 테이블 풀 스캔을 수행하는 것은 비효율적이다. 조건절에 해당하는 열들이 자주 호출된다면, 인덱스로 빠른 데이터 접근을 유도하는 식으로 튜

튜닝 전 SQL문부서 테이블에서 비고 칼럼의 값이 active 인 데이터들을 추출하는 쿼리이다. 비고 값의 첫 문자가 아스키 코드 97(a), 두번째 문자가 아스키 코드 99(c)일 떄만 결과를 구한다.튜닝 전 수행 결과분석을 위해 두 개의 조건절을 나누어 실행해보자.