MariaDB DBMS(19)
-
[SQL 튜닝 실습] SQL 튜닝 준비 4
PRIMARY explain select 사원1.사원번호, 사원1.이름, 사원1.성 from 사원 as 사원1 where 사원1.사원번호 = 100001 union all select 사원2.사원번호, 사원2.이름, 사원2.성 from 사원 as 사원2 where 사원2.사원번호 = 100002; SUBQUERY 독립적으로 실행되는 서브쿼리로 SELECT절의 스칼라 서브쿼리와 WHERE 절의 중첩 서브쿼리일 경우에 해당 explain select ( select count(*) from 부서사원_매핑 as 매핑 ) as 카운트, ( select max(연봉) from 급여 ) as 급여; 2번과 3번의 id값의 서브쿼리는 각각 독립적으로 실행된다. DERIVED FROM 절에 작성된 서브쿼리로 FROM ..
2021.08.09 -
[SQL 튜닝 실습] SQL 튜닝 준비 3
실행 계획 수행 SQL문으로 요청한 데이터를 어떻게 조회할 것인지에 대한 계획, 즉 경로에 대한 계획이다. (*) 여기서부터는 GUI인 MYSQL 워크벤치를 사용 기본실행계획 수행문 : 아래 아무거나 사용해도 된다. 개인적으로 EXPLAIN 사용 EXPLAIN SQL문; DESC SQL문; 실행계획 수행 SQL문 앞에 EXPLAIN 키워드를 입력하고 실행하면 옵티마이저가 만든 실행계획이 출력된다. use tuning; show tables; explain select * from 사원 where 사원번호 between 100001 and 200000; (*) 마리아 DB 버전 10.0.5 이상에서는 UPDATE 및 DELETE 문에서도 실행계획을 확인할 수 있다. 기본 실행계획 항목 분석 EXPLAIN ..
2021.08.09 -
[SQL 튜닝 실습] SQL 튜닝 준비 2
마리아 디비 환경변수 설정 변수 명 : MARIADB_HOME 변수 값 : C:\Program Files\MariaDB 10.5 Path 추가 : %MARIADB_HOME%\bin 실습데이터 넣기 mysql -uroot -p --port 3333
2021.08.09 -
[SQL 튜닝 실습] SQL 튜닝 준비 1
실습환경 구성하기 마리아DB 설치 다운로드 기본구성 서비스 네임 마리아DB bin 경로로 이동 후 실행 cd C:\Program Files\MariaDB 10.5\bin mysql -uroot -p --port 3333 show databases; 데이터 세팅하기 실습파일 다운로드 다운로드 후 저장 폴더 C:\db_data\
2021.08.09 -
[SQL 튜닝 실습] SQL 튜닝 기초 5
동등 조건으로 인덱스를 사용하는 나쁜 SQL 문 튜닝 전 SQL 문 select * from 사원출입기록 where 출입문 = 'B' 튜닝 전 실행계획 explain select * from 사원출입기록 where 출입문 = 'B' I_출입문 인덱스를 사용해서 데이터에 접근한다. 명확한 상수화 조건으로 데이터 접근 범위를 줄였기때문에 ref 항목이 const로 출력된다. (*) MariaDB 신버전의 경우 ALL 타입(테이블 풀 스캔)으로 출력된다. 튜닝 수행 select 출입문, count(1) from 사원출입기록 group by 출입문 튜닝 후 SQL 문 select * from 사원출입기록 ignore index(I_출입문) where 출입문 = 'B' 출입문 B는 총 66만 건 전체 데이터 중 ..
2021.08.09 -
[SQL 튜닝 실습] SQL 튜닝 기초 4
인덱스 고려없이 열을 사용하는 나쁜 SQL 문 튜닝 전 SQL 문 select 성, 성별, count(1) as 카운트 from 사원 group by 성, 성별 튜닝 전 실행 계획 explain select 성, 성별, count(1) as 카운트 from 사원 group by 성, 성별 I_성별_성 인덱스키를 가지고 인덱스 풀스캔(Using index)으로 접근한다. 성과 성별 컬럼 순으로 재정렬하기위해 Using temporary 를 사용한다. 사원 테이블의 인덱스 show index from 사원 튜닝 전 SQL 문에서 사원테이블의 I_성별_성 인덱스를 활용하는데도 메모리나 디스크에 임시 테이블을 꼭 생성해야할지 고민해야한다. I_성별_성 인덱스는 성별과 성 컬럼순으로 생성된 오브젝트로 해당 인덱스..
2021.08.09