
DBA는 아니지만, 도메인의 특성에 따라 테이블을 정의하고, 성능을 고려하여 인덱스와 쿼리를 작성하는 백엔드 개발자로서 MySQL을 깊이 있게 이해하기 위해 이 책을 읽었다.
특히 백엔드 개발자에게 도움이 되는 내용은 아래와 같다.
- MySQL 아키텍처의 전반적인 구조와 스레드 기반의 동작 방식을 설명한다.
- InnoDB 엔진에서 MVCC를 구현하는 방법을 설명한다.(Undo Log, Isolation Level)
- InnoDB 엔진이 데드락을 어떻게 감지하고 어떤 기준으로 트랜잭션을 종료하는지, 동시 처리 스레드가 너무 많아 성능 향상을 위해 데드락 감지를 비활성화하는 경우의 대안을 설명한다.
- Storage 엔진의 성능에 가장 많은 영향을 끼치는 Disk I/O 를 최소화하기 위한 캐시와 버퍼에 대해 설명한다.
- InnoDB 엔진에서 레코드 락을 구현하는 방식에 대해 설명한다.
- B-Tree 인덱스의 구조 및 가용성과 효용성, 그 외 클러스터링, 전문 검색, 함수 기반, 멀티 밸류 등의 인덱스에 대해 설명한다.
- 쿼리가 MySQL 엔진에서 어떤 절차로 실행되고, 데이터 처리가 어떻게 이루어지는지를 설명한다.
- 옵티마이저가 실행 계획을 최적화하는 여러 방식들에 대해 설명한다.
- 실행 계획이 수립되는 과정, 실행 계획을 분석하는 방법에 대해 설명한다.