최근에 글을 쓰면서 SQL 책을 다시봤는데 커버링 인덱스 관련내용이 눈에 띄었다 실무에서 자주쓰이면서 이해하기에 딱 좋은 심플한 예제를 구했다 블로그에 정리해보려고 한다 ✍ 우선 이전글과 테이블 구조가 똑같지만 써보도록 하겠슴다 0. 테이블 및 인덱스 정보 사원 테이블 사원번호 생년월일 이름 성 성별 입사일자 int date varchar varchar enum('M', 'F') date PK 사원번호 I_입사일자 입사일자 I_성별_성 성별 + 성 1. 문제의 예제 쿼리와 실행계획 Select 사원번호 From 사원 Where 입사일자 Like '1993%' And 사원번호 > 100000; -- 실행결과 -- 사원번호 100030 100039 ... 100207 100214 100216 1993년생이고..
mysql
mybatis를 사용하는 회사에서 레거시 SQL 쿼리튜닝을 진행하고 있는데 많은 작업을 해도 성능개선이 안되는 쿼리가 있는 반면에 간단하지만 효과있는 가성비가 좋은 튜닝법이 있다. 가성비 튜닝법만 블로그에 기록해두려고한다 ✍ 첫번째는 UNION, UNION ALL 이다 오라클에서도 동작방식이 비슷하지만 현업쿼리를 붙여넣기도 좀 그렇고 예전에 봤던 mysql 책에 간단하게 잘 설명 되어있어서 사용 좀 하려고한다. 먼저 결론부터 말하자면 UNION ALL에는 정렬이 안들어가서 더 빠르다 옵티마이저 동작을 살펴보도록 하자 아래는 사원테이블과 Index 정보다 0. 테이블 정보 사원테이블 사원번호 생년월일 이름 성 성별 입사일자 int date varchar varchar enum('M', 'F') date P..