MariaDB 샘플(2)
-
[SQL 튜닝 실습] SQL 튜닝 중급 4
비효율적인 인덱스를 사용하는 나쁜 SQL 문 튜닝 전 SQL 문 select 사원번호, 이름, 성 from 사원 where 성별 = 'M' and 성 = 'Baba'; 튜닝 전 실행 계획 explain select 사원번호, 이름, 성 from 사원 where 성별 = 'M' and 성 = 'Baba'; I_성별_성 인덱스를 활용해서 사원테이블에 접근 성별과 성 컬럼에 고정된 값으로 조건절 ref 항목 : const, const를 작성해서 인덱스 스캔으로 원하는 데이터에 접근 튜닝 수행 select count(distinct 성) 성_개수, count(distinct 성별) 성별_개수 from 사원; 사원 테이블의 인덱스 show index from 사원; 데이터값이 다양하지 않은 성별 컬럼을 선두로 구..
2021.08.10 -
[SQL 튜닝 실습] SQL 튜닝 중급 2
필요 이상으로 많은 정보를 가져오는 나쁜 SQL 문 튜닝 전 SQL 문 select count(사원번호) as 카운트 from ( select 사원.사원번호, 부서관리자.부서번호 from ( select * from 사원 where 성별 = 'M' and 사원번호 > 300000 ) 사원 left join 부서관리자 on 사원.사원번호 = 부서관리자.사원번호 ) 서브쿼리; 튜닝 전 실행계획 id가 1인 행만 있으므로 먼저 출력된 사원테이블이 데이터에 접근하는 드라이빙 테이블이고 나중에 출력된 부서관리자 테이블이 드리븐 테이블임을 알 수 있다. 사원 테이블은 사원번호 > 300000 조건때문에 레인지스캔을 수행하며 기본키를 활용해서 데이터에 접근할 것임을 알 수 있다. 부서관리자 테이블은 사원.사원번호 =..
2021.08.09