최근에 글을 쓰면서 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년생이고..
분류 전체보기
mybatis를 사용하는 회사에서 레거시 SQL 쿼리튜닝을 진행하고 있는데 많은 작업을 해도 성능개선이 안되는 쿼리가 있는 반면에 간단하지만 효과있는 가성비가 좋은 튜닝법이 있다. 가성비 튜닝법만 블로그에 기록해두려고한다 ✍ 첫번째는 UNION, UNION ALL 이다 오라클에서도 동작방식이 비슷하지만 현업쿼리를 붙여넣기도 좀 그렇고 예전에 봤던 mysql 책에 간단하게 잘 설명 되어있어서 사용 좀 하려고한다. 먼저 결론부터 말하자면 UNION ALL에는 정렬이 안들어가서 더 빠르다 옵티마이저 동작을 살펴보도록 하자 아래는 사원테이블과 Index 정보다 0. 테이블 정보 사원테이블 사원번호 생년월일 이름 성 성별 입사일자 int date varchar varchar enum('M', 'F') date P..
VM명세서를 자꾸 까먹어서 간단하게 기록해두려고한다 우선 HelloWorld.java 를 작성 후 컴파일을 해서 뜯어보자 javap -v 명령어를 이용해서, 역어셈블리를 해보면 클래스파일의 자세한 정보를 확인 할 수 있다. 위의 클래스 구조를 표로 정리 한 것이다. VM 명세서라고도 한다. 매직넘버 (magic number) 0xCAFEBABE 클래스 파일 포맷 버전 (version) 클래스 파일의 메이저/마이너 버전 상수 풀 (constant pool) 클래스 상수들이 모여 있는 곳 액세스 플래그 (access flag) 클래스 종류를 표시 this 클래스 (this class) 현재 클래스명 슈퍼 클래스 (super class) 부모클래스명 인터페이스 (interface) 클래스가 구현한 모든 인터페..
스프링 메세지 컨버터 관련 내용을 구글링 한 적 있었는데, 유명강사님 강의내용을 정리한 것 같은 똑같은 내용의 글들이였다. 강의를 보지는 않았지만 유입물의 내용이 좋았다. 하지만 분명히 더 궁금한 내용들이 있을텐데, 강의내용만 정리 되어있고, 내부적으로는 어떻게 동작하는지 설명이 별로 없어서 뜯어보았다 1. 메세지 컨버터란 무엇일까 예를들어 한국인과 일본인이 서로의 본토 언어로 대화 하려고 하면 대화가 안되겠죠 자바객체와 C++객체에도 마찬가지 일겁니다. 무언의 공통어인 영어로 중간에서 번역해준다면 대화가 통할겁니다. 번역하는 과정은 직렬화 역직렬화개념이라고 볼 수 있습니다. 이 무언의 공통어가 요즘 웹에서 JSON 입니다 예시에서 영어가 JSON이라고 보시면 됩니다 메세지 컨버터란 자바 객체를 JSON..