상세정보

d

d

dd
dd

MySQL을 더 빠르게, 성능 최적화 선택과 집중

쿼리 응답 시간을 줄이는 가장 최적의 방법과 기술들

지은이 |   대니얼 니히터
옮긴이 |   이정해
발행일 |   2023-10-25
페이지 |   384가격 |   28,000원
ISBN |   978-89-6540-372-2
분야 |   MySQL,데이터베이스,백엔드프로그래밍
dddddd

MySQL을 더 빠르게, 성능 최적화 선택과 집중

쿼리 응답 시간을 줄이는 가장 최적의 방법과 기술들

지은이 |   대니얼 니히터
옮긴이 |   이정해
발행일 |   2023-10-25
페이지 |   384
가격 |   28,000원
ISBN |   978-89-6540-372-2
분야 |   MySQL,데이터베이스,백엔드프로그래밍
ddd
ddd
데이터베이스 성능 최적화 분야에서 가장 뛰어난 저자의 모범 사례와 기술 노하우 수록
MySQL 성능을 다루는 기본서나 고급서는 여럿 찾아볼 수 있지만, 중간 단계를 설명하는 책은 찾기 어렵습니다. MySQL 성능을 복잡성 없이 설명하지 않고는 참으로 어렵기 때문입니다. 이 실용적인 책은 데이터베이스 관리자(DBA)가 필요로 하는 심층적인 내부 지식을 다루진 않지만, 기본 내용 이상의 중간 수준의 MySQL 지식을 소프트웨어 엔지니어들에게 교육함으로써 격차를 해소합니다.

이 책은 MySQL 성능에 직접적인 영향을 미치는 최상의 실천 방법과 기술을 어떻게 적용하는지를 안내합니다. 쿼리 실행 분석, 일반적인 SQL 절에 대한 인덱싱, 데이터 접근을 최적화하는 테이블 조인, 그리고 가장 중요한 MySQL 메트릭을 이해함으로써 성능을 어떻게 개선하는지를 배우게 될 것입니다. 또한 복제, 트랜잭션, 행 잠금, 클라우드가 MySQL 성능에 미치는 영향에 대해서도 알아봅니다.

이 책은 짧은 시간에 읽을 수 있지만, 실무에 바로 적용할 수 있는 수년간의 지식과 기술을 공유합니다.
기본적인 MySQL 지식과 고급 MySQL 성능 사이의 공백을 메우는 첫 번째 책으로, MySQL의 복잡성을 다루지 않고, MySQL을 사용하는 엔지니어들이 놀라운 성능을 달성할 수 있도록 집중적이고 효율적인 방법을 제시합니다.
쿼리 응답 시간을 목표로 하는 이 책은 모든 OLTP 데이터베이스에 대해 쿼리 응답 시간이 성능의 목표이며, 인덱스, 데이터, 접근 패턴 등 쿼리 응답 시간에 직접적으로 영향을 미치는 베스트 프랙티스와 기법들을 배우고 적용하는 방법을 공유합니다.

각 장의 큰 주제마다 실제 상황 예제를 사용하며 저자만의 통찰력 있는 방법으로 핵심 내용에 집중하고, 필요한 도구 및 분석 방법을 설명합니다. 이 책의 제목 그대로 집중과 효율성을 강조합니다. 각 장을 마무리할 때 요약 정리가 제공되며, 실제 실습을 위한 연습 문제가 포함되어 있어 독자가 직접 실행하고 익힐 수 있도록 구성되었습니다.

MySQL을 사용하는 숙련된 엔지니어들을 대상으로 SQL이나 데이터베이스의 기본 개념을 설명하지 않고, 애플리케이션과 관련된 내용에 초점을 맞춥니다. 이 책은 MySQL 성공에 필요한 모든 지식과 기술을 제공한다고 자신합니다. 저자의 17년간의 MySQL 경험과 여러 MySQL 전문가들의 리뷰를 바탕으로 작성되었습니다.


이 책에서 다루는 내용
- 쿼리 응답 시간이 MySQL 성능의 핵심인 이유를 알아봅니다.
- 집계, 보고, 분석을 포함한 쿼리 측정 항목을 자세히 알아봅니다.
- 일반적인 SQL 절과 테이블 조인을 위해 효과적으로 인덱싱하는 방법을 알아봅니다.
- 가장 중요한 서버 메트릭을 탐색하고 성능에 대해 어떤 정보를 알 수 있는지 알아봅니다.
- 트랜잭션과 행 잠금을 자세히 알아봅니다.
- 어떤 규모에서든 놀라운 MySQL 성능을 달성하세요.

1장 쿼리 응답 시간
_1-1 거짓 성능에 관한 실화
_1-2 핵심 지표(North Star)
_1-3 쿼리 보고
_1-4 쿼리 분석
_1-5 쿼리 응답 시간 개선
_1-6 언제 쿼리를 최적화해야 할까?
_1-7 MySQL을 더 빠르게
_요점 정리
_연습: 느린 쿼리 식별

2장 인덱스와 인덱싱
_2-1 성능 향상과 관련 없는 딴짓
_2-2 MySQL 인덱스: 시각적 소개
_2-3 인덱싱: MySQL처럼 생각하는 방법
_2-4 좋은 인덱스였는데...
_2-5 테이블 조인 알고리즘
_요점 정리
_연습: 중복 인덱스 찾기

3장 데이터
_3-1 세 가지 비밀
_3-2 최소 데이터 원칙
_3-3 데이터 삭제 또는 보관
_요점 정리
_연습: 쿼리 데이터 접근 감사

4장 접근 패턴
_4-1 MySQL은 아무것도 하지 않는다
_4-2 한계에 도달하면 성능이 불안정해진다
_4-3 도요타와 페라리
_4-4 데이터 접근 패턴
_4-5 애플리케이션 변경
_4-6 더 좋고 빠른 하드웨어?
_요점 정리
_연습: 접근 패턴 설명하기

5장 샤딩
_5-1 단일 데이터베이스를 확장하지 않는 이유
_5-2 바위가 아닌 조약돌
_5-3 샤딩: 간략한 소개
_5-4 대안들
_요점 정리
_연습: 4년 적합성

6장 서버 메트릭
_6-1 쿼리 성능 대 서버 성능
_6-2 정상과 안정
_6-3 핵심 성능 지표
_6-4 메트릭 필드
_6-5 스펙트라
_6-6 모니터링과 경보
_요점 정리
_연습: 핵심 성능 지표 검토
_연습: 경보와 임곗값 검토

7장 복제 지연
_7-1 MySQL의 복제 유형
_7-2 복제 지연의 3가지 원인
_7-3 위험: 데이터 손실
_7-4 지연 감소: 다중 스레드 복제
_7-5 모니터링
_7-6 복구 시간
_요점 정리
_연습: 1초 미만 지연 모니터링

8장 트랜잭션
_8-1 로우 락
_8-2 MVCC와 언두 로그
_8-3 변경 내역 목록 길이
_8-4 일반적인 문제
_8-5 보고
_요점 정리
_연습: 변경 내역 목록 길이(HLL) 경고
_연습: 로우 락 검사

9장 다른 문제들
_9-1 스플릿-브레인이 가장 큰 위험이다
_9-2 데이터 드리프트는 실제지만 보이지 않는다
_9-3 ORM을 믿지 않도록 주의한다
_9-4 스키마는 항상 변경된다
_9-5 MySQL 표준 SQL 확장
_9-6 시끄러운 이웃들
_9-7 애플리케이션은 우아하게 실패하지 않는다
_9-8 고성능 MySQL은 어렵다
_연습: 스플릿-브레인을 방지하는 가드레일 식별하기
_연습: 데이터 드리프트 확인하기
_연습: 카오스

10장 클라우드 MySQL
_10-1 호환성
_10-2 관리(DBA)
_10-3 네트워크와 스토리지...지연 시간
_10-4 성능은 곧 돈이다
_요점 정리
_연습: 클라우드 MySQL 사용
대니얼 니히터
대니얼 니히터(Daniel Nichter)는 15년 이상의 MySQL 경력을 가진 DBA입니다. 그는 2004년 데이터 센터에서 일하면서 MySQL 성능 최적화를 시작했습니다. 얼마 지나지 않아 그는 MySQL에 대한 정보와 도구를 공유하려고 hackmysql.com을 만들었습니다. 대니얼은 Percona에서 8년을 재직하는 동안 여러 가지 도구를 발표한 것으로 가장 잘 알려졌으며, 그중 몇 가지는 사실상 표준으로 남아 가장 큰 기술 회사에서 사용되고 있습니다. 그는 또한 MySQL 커뮤니티 어워드 수상자이며, 컨퍼런스 연사, 광범위한 오픈소스 기여자이기도 합니다. 대니얼은 현재 수천 대의 MySQL 서버를 보유한 핀테크 회사인 스퀘어(Square)에서 DBA와 소프트웨어 엔지니어로 일하고 있습니다.


옮긴이 이정해
컴퓨터 공학과를 전공하고 졸업했습니다. 카카오 엔터프라이즈에서 DBA 업무를 하고 있습니다. 오픈소스 DBMS에 관심이 많으며 DBMS뿐만 아니라 여러 기술을 공부하는 것을 좋아합니다. 신기술에 대해 관심을 가지고 현재 트렌드에 뒤쳐지지 않으려 노력하고 있습니다. 최근에 해보지 않은 여러 기술을 습득하느라 머리가 많이 무겁지만 재미있게 하고 있습니다.

데이터베이스 성능 최적화 분야에서 가장 뛰어난 저자의 모범 사례와 기술 노하우 수록
MySQL 성능을 다루는 기본서나 고급서는 여럿 찾아볼 수 있지만, 중간 단계를 설명하는 책은 찾기 어렵습니다. MySQL 성능을 복잡성 없이 설명하지 않고는 참으로 어렵기 때문입니다. 이 실용적인 책은 데이터베이스 관리자(DBA)가 필요로 하는 심층적인 내부 지식을 다루진 않지만, 기본 내용 이상의 중간 수준의 MySQL 지식을 소프트웨어 엔지니어들에게 교육함으로써 격차를 해소합니다.

이 책은 MySQL 성능에 직접적인 영향을 미치는 최상의 실천 방법과 기술을 어떻게 적용하는지를 안내합니다. 쿼리 실행 분석, 일반적인 SQL 절에 대한 인덱싱, 데이터 접근을 최적화하는 테이블 조인, 그리고 가장 중요한 MySQL 메트릭을 이해함으로써 성능을 어떻게 개선하는지를 배우게 될 것입니다. 또한 복제, 트랜잭션, 행 잠금, 클라우드가 MySQL 성능에 미치는 영향에 대해서도 알아봅니다.

이 책은 짧은 시간에 읽을 수 있지만, 실무에 바로 적용할 수 있는 수년간의 지식과 기술을 공유합니다.
기본적인 MySQL 지식과 고급 MySQL 성능 사이의 공백을 메우는 첫 번째 책으로, MySQL의 복잡성을 다루지 않고, MySQL을 사용하는 엔지니어들이 놀라운 성능을 달성할 수 있도록 집중적이고 효율적인 방법을 제시합니다.
쿼리 응답 시간을 목표로 하는 이 책은 모든 OLTP 데이터베이스에 대해 쿼리 응답 시간이 성능의 목표이며, 인덱스, 데이터, 접근 패턴 등 쿼리 응답 시간에 직접적으로 영향을 미치는 베스트 프랙티스와 기법들을 배우고 적용하는 방법을 공유합니다.

각 장의 큰 주제마다 실제 상황 예제를 사용하며 저자만의 통찰력 있는 방법으로 핵심 내용에 집중하고, 필요한 도구 및 분석 방법을 설명합니다. 이 책의 제목 그대로 집중과 효율성을 강조합니다. 각 장을 마무리할 때 요약 정리가 제공되며, 실제 실습을 위한 연습 문제가 포함되어 있어 독자가 직접 실행하고 익힐 수 있도록 구성되었습니다.

MySQL을 사용하는 숙련된 엔지니어들을 대상으로 SQL이나 데이터베이스의 기본 개념을 설명하지 않고, 애플리케이션과 관련된 내용에 초점을 맞춥니다. 이 책은 MySQL 성공에 필요한 모든 지식과 기술을 제공한다고 자신합니다. 저자의 17년간의 MySQL 경험과 여러 MySQL 전문가들의 리뷰를 바탕으로 작성되었습니다.


이 책에서 다루는 내용
- 쿼리 응답 시간이 MySQL 성능의 핵심인 이유를 알아봅니다.
- 집계, 보고, 분석을 포함한 쿼리 측정 항목을 자세히 알아봅니다.
- 일반적인 SQL 절과 테이블 조인을 위해 효과적으로 인덱싱하는 방법을 알아봅니다.
- 가장 중요한 서버 메트릭을 탐색하고 성능에 대해 어떤 정보를 알 수 있는지 알아봅니다.
- 트랜잭션과 행 잠금을 자세히 알아봅니다.
- 어떤 규모에서든 놀라운 MySQL 성능을 달성하세요.