MySQL 퍼포먼스에 산소탱크를 달아보자!
MySQL을 여러 분야에 사용하지만 쿼리를 정확하게 이해하고 작성하는 경우는 드물다. 데이터가 적을 때는 크게 문제가 되지 않았지만, 빅데이터가 이슈가 된 현재는 쿼리의 작은 변화로도 성능이 엄청나게 달라진다. 따라서 쿼리에 대한 깊이 있는 이해가 필요하다. 이 도서는 실무 사례를 바탕으로 MySQL의 특성과 쿼리 최적화 방법(쿼리 작성 방법)을 설명한다. 실사례를 통해서 MySQL을 좀 더 심도 있게 이해할 수 있으며, 실무자들이 쉽게 실수했던 것들을 이해하고 해결할 수 있다. 데이터베이스 초급에서 중급으로 올라가는 가교 역할을 할 것이다.
대상 독자
저자의 노하우가 녹아있는 MySQL 실무 팁!
MySQL은 예전부터 있었고, 지금도 해외에서는 잘 활용하고 있는 데이터베이스다. 하지만 유독 국내에서는 규모가 작은 서비스에만 적당한 데이터베이스로 치부되어 왔다. 최근 SNS 서비스가 화두가 되면서 MySQL이 급부상하였다. 구글에서는 이미 적극적으로 MySQL을 사용하고 있으며, SNS의 대표주자인 트위터 역시 MySQL을 기반으로 Gizzard라는 데이터 스토어를 만들어 사용하고 있다. 대형 SNS 업체들이 왜 MySQL을 선정하여 활용하고 있을까? 저자는 이 물음에 대한 답변을 실무 경험을 통해서 알려준다. 현장에서 얻은 노하우와 실무 팁은 현장에서 겪고 있는 문제를 해결하는 데 많은 도움이 될 것이다. 이제 MySQL의 성능을 높여보자.
1장. MySQL의 특징
1.1 MySQL은 전체적으로 어떻게 생겼나요?
1.2 MySQL에서 스토리지 엔진이란 무엇인가요?
1.3 MySQL은 데이터를 어떻게 처리할까?
2장. 쿼리 프로파일링의 이해
3장. WHERE 조건 이해
3.1 묵시적 형변환 함정에 빠지지 말자
3.2 편리한 함수, 잘못 쓰면 성능에 독이 된다
3.3 Like 검색을 아무 때나 써야 하나?
4장. SQL 레벨에서의 접근법
4.1 데이터 흐름을 이해하자
4.2 불필요한 조인을 피하자
4.3 Semi-Join으로 인한 비효율을 제거하자
4.4 Outer Join이 반드시 필요한지 파악하자
4.5 서브쿼리를 적극 활용하자
4.6 서브쿼리를 맹신하지 말자
4.7 때로는 Temporary Table도 적극 활용하자
4.8 트랜잭션의 Isolation Level에서 테이블 잠금이 발생할 수 있음을 기억하자
5장. 스키마 레벨에서의 접근법
5.1 인덱스는 적재적소에 배치하자
5.2 테이블 파티셔닝을 활용하여 대용량 데이터를 관리해보자
5.3 트리거로 제약을 뛰어넘는 날개를 달아주자
6장. 스토리지 엔진 레벨에서의 접근법
6.1 InnoDB만을 고집하지 말고, 때로는 스토리지 엔진을 바꿔보자
6.2 InnoDB를 사용한다면, Barracuda 파일 포맷도 고려해보자
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.