HOME / CATALOG / 데이터베이스 & 빅데이터
데이터베이스 & 빅데이터

MySQL 성능 최적화

고성능 시스템 구축을 위한 전략과 최적화 기법
지은이 실비아 보트로스, 제레미 틴리
옮긴이 류수미, 송희정
도서 정보
출간일
2022년 9월 22일
쪽수
424쪽
판형
175*235*18mm
ISBN
9791158393656
시리즈
데이터베이스 & 빅데이터 시리즈_026
정가
28,000원
난이도
ERR 오탈자 등록
도서 소개
저자 소개
역자 소개
목차
정오표

도서 소개

최신 아키텍처와 도구 및 사례를 통해 규모에 맞게 MySQL을 실행하기 위한 검증된 전략을 제공합니다!

어떻게 하면 MySQL의 성능을 극대화할 수 있을까? 《MySQL 성능 최적화》를 통해서 서비스 수준 목표 설정부터 스키마, 인덱스, 쿼리 설계뿐만 아니라, 플랫폼의 잠재력을 최대한 발휘할 수 있게 서버, 운영체제, 하드웨어 조정에 이르는 모든 고급 기술을 배울 수 있다. 또한 DBA가 알아야 하는 복제, 로드 밸런싱, 고가용성 및 장애 조치를 통해 애플리케이션을 확장하는 안전하고 실용적인 방법을 알려준다.

클라우드 및 자체 호스팅 MySQL, InnoDB 성능, 기능 및 도구의 개선 사항을 반영하여 업데이트된 이 개정판은 비즈니스에 따라 확장하는 관계형 데이터 플랫폼을 설계하는 데 도움이 된다. 그리고 데이터베이스 보안에 대한 모범 사례와 성능과 데이터베이스 안정성 향상에 대한 유익한 내용이 담겨 있다.

★ 이 책에서 다루는 내용 ★

  • 스토리지 엔진에 대한 핵심 내용을 포함하여 MySQL의 아키텍처에 대해 자세히 알아본다.
  • 하드웨어 및 배포 선택을 통해 서버 구성이 어떻게 작동하는지 살펴본다.
  • 소프트웨어 딜리버리 프로세스의 일부로서 쿼리 성능을 다룬다.
  • MySQL의 복제 및 고가용성에 대한 개선 사항을 알아본다.
  • 관리형 클라우드 환경에서의 다양한 MySQL을 비교한다.
  • 애플리케이션 구성에서 서버 튜닝에 이르는 MySQL 전체 스택의 최적화 방안을 모색한다.
  • 기존 데이터베이스 관리 작업을 자동화된 프로세스로 전환하는 법을 알아본다.

 

도서 상세 이미지

저자 소개

실비아 보트로스 (Silvia Botros)

실비아 보트로스는 Twilio의 소프트웨어 설계자이다. SendGrid에서 근무하는 동안 수십억 개의 이메일 전송을 지원하는 데이터베이스 플랫폼을 구축하고, 제품 지원 및 데이터 저장소 설계를 초기부터 운영까지 추진하는 데 기여했다.

제레미 틴리 (Jeremy Tinley)

제레미 틴리는 20년 이상의 MySQL 경험을 가진 Etsy의 수석 시스템 엔지니어이다. 그는 지금까지 가용성, 안정성, 운영 효율성을 염두에 두고 수만 개의 MySQL 인스턴스를 관리했다.

역자 소개

류수미

LG CNS 금융사업부에서 은행, 보험, 증권사를 포함한 금융권 차세대, 방카슈랑스 및 BPR 등 다양한 프로젝트를 수행했다. JavaEE 환경에서 개발 및 아키텍처를 만들고 검증하는 아키텍트로 근무했다. 현재 오라클 MySQL GBU에서 근무 중이다. 지금까지 많은 고객사의 MySQL POC, BMT를 지원했으며, MySQL 행사뿐만 아니라 다양한 오픈 소스 행사에서 MySQL 관련 발표 및 강의를 진행했다. 페이스북의 한국 MySQL 사용자 그룹의 운영진으로 활동하고 있다.

송희정

대우정보시스템 벤처포트 전자상거래 사업부에서 자바 웹 개발자로 근무했다. 이후 기술연구소로 옮겨 기술전략팀을 거친 후 전사 표준 프레임워크 개발, 보급 및 JavaEE 기술 컨설팅 프로젝트를 수행했다. 오라클에서 미들웨어 엔지니어로 활동하다가 2012년 이후 오라클 교육사업본부에서 교육 컨설턴트로서 기업체 대상의 전문가 양성 과정 개발과 DT 기술 역량 확보 및 내재화 관련 컨설팅을 하고 있다.

목차

  • ▣ 01장: MySQL 아키텍처
  • MySQL의 논리적 아키텍처
  • __연결 관리 및 보안
  • __최적화 및 실행
  • 동시성 제어
  • __읽기/쓰기 잠금
  • __잠금 세분화
  • 트랜잭션
  • __격리 수준
  • __교착
  • __트랜잭션 로깅
  • __MySQL에서의 트랜잭션
  • 다중 버전 동시성 제어
  • 복제
  • 데이터 파일 구조
  • InnoDB 엔진
  • __JSON 문서 지원
  • __데이터 딕셔너리의 변화
  • __Atomic DDL
  • 요약
  •  
  • ▣ 02장: 신뢰성 엔지니어링 환경에서의 모니터링
  • 신뢰성 엔지니어링이 DBA 팀에 미치는 영향
  • 서비스 수준 목표의 정의
  • __고객 만족을 위해 필요한 것은 무엇일까요?
  • 측정 대상
  • __SLI 및 SLO 정의
  • __모니터링 솔루션
  • __가용성 모니터링
  • __쿼리 지연 모니터링
  • __오류 모니터링
  • __사전 모니터링
  • 장기적인 성능 측정
  • __비즈니스 케이던스 배우기
  • __효과적인 메트릭 추적
  • __성능 점검을 위한 모니터링 도구 사용
  • __전체 아키텍처링에 SLO 활용하기
  • 요약
  •  
  • ▣ 03장: 성능 스키마(Performance Schema)
  • 성능 스키마 소개
  • __인스트루먼트 요소
  • __컨슈머 체계
  • __자원 소비
  • __제약 사항
  • __sys 스키마
  • __스레드 이해하기
  • 설정
  • __성능 스키마의 활성화와 비활성화
  • __인스트루먼트 활성화와 비활성화
  • __컨슈머 활성화와 비활성화
  • __특정 객체에 대한 모니터링 튜닝
  • __스레드 모니터링 튜닝
  • __성능 스키마에 대한 메모리 크기 조정
  • __기본값
  • 성능 스키마 사용
  • __SQL 문 점검
  • __읽기 대 쓰기 성능 점검
  • __메타데이터 잠금 점검
  • __메모리 사용량 점검
  • __변수 점검
  • __자주 발생하는 오류 점검
  • __성능 스키마 자체 점검
  • 요약
  •  
  • ▣ 04장: 운영 체제 및 하드웨어 최적화
  • MySQL의 성능을 제한하는 요소
  • MySQL용 CPU를 선택하는 방법
  • 메모리 및 디스크 리소스의 균형 유지
  • __읽기, 쓰기, 캐싱
  • __작업 세트란?
  • 솔리드 스테이트 스토리지
  • __플래시 메모리 개요
  • __가비지 컬렉션
  • RAID 성능 최적화
  • __RAID 장애, 복구 및 모니터링
  • __RAID 구성 및 캐싱
  • 네트워크 설정
  • 파일시스템 선택하기
  • __디스크 큐 스케줄러 선택
  • __메모리와 스와핑
  • __운영 시스템 상태
  • __그 외 유용한 도구들
  • 요약
  •  
  • ▣ 05장: 서버 설정 최적화
  • MySQL의 설정이 동작하는 방법
  • __구문, 범위 및 다이내믹 여부(Dynamism)
  • __지속(Persisted) 시스템 변수
  • __변수 설정의 부작용
  • __변수 변경 계획
  • __하지 말아야 할 것
  • __MySQL 설정 파일 생성
  • __MySQL 서버 상태 변수 점검
  • 메모리 사용량 설정
  • __연결당 메모리 요구사항
  • __운영 체제를 위한 메모리 예약
  • __InnoDB 버퍼 풀
  • __스레드 캐시
  • MySQL의 I/O 동작 설정
  • __InnoDB 트랜잭션 로그
  • __로그 버퍼
  • __InnoDB 테이블스페이스
  • __다른 I/O 설정 옵션
  • MySQL 동시성 설정
  • 안전 설정
  • 고급 InnoDB 설정
  • 요약
  •  
  • ▣ 06장: 스키마 설계와 관리
  • 최적의 데이터 유형 선택
  • __정수
  • __실수
  • __Date와 Time 유형
  • __비트 팩 데이터 유형
  • __JSON 데이터
  • __식별자 선택
  • __특별한 유형의 데이터
  • MySQL의 스키마 설계 문제
  • __너무 많은 열
  • __너무 많은 조인
  • __지나친 ENUM 사용
  • __위장한 ENUM
  • __NULL의 지나친 배제
  • 스키마 관리
  • __데이터 저장소 플랫폼의 일부인 스키마 관리
  • 요약
  •  
  • ▣ 07장: 고성능을 위한 인덱싱
  • 인덱싱 기본
  • __인덱스 유형
  • __인덱스의 이점
  • 고성능을 위한 인덱싱 전략
  • __프리픽스(Prefix) 인덱스 및 인덱스 선택성
  • __다중 열 인덱스
  • __좋은 열 순서 선택하기
  • __클러스터형 인덱스
  • __커버링 인덱스
  • __인덱스 스캔을 사용한 정렬
  • __중복과 이중 인덱스
  • __사용하지 않는 인덱스
  • 인덱스와 테이블 유지 관리
  • __테이블 손상 찾기 및 복구
  • __인덱스 통계 업데이트
  • __인덱스 및 데이터 단편화 줄이기
  • 요약
  •  
  • ▣ 08장: 쿼리 성능 최적화
  • 쿼리가 느린 이유는 무엇일까요?
  • 느린 쿼리 기본: 데이터 액세스 최적화
  • __데이터베이스에 불필요한 데이터를 요청하고 있습니까?
  • __MySQL이 너무 많은 데이터를 검사하고 있습니까?
  • 쿼리를 재구성하는 방법
  • __복잡한 쿼리 대 많은 쿼리
  • __쿼리 자르기
  • __조인 분해
  • 쿼리 실행 기본 사항
  • __MySQL 클라이언트/서버 프로토콜
  • __쿼리 상태
  • __쿼리 최적화 프로세스
  • __쿼리 실행 엔진
  • __클라이언트에게 결과 반환하기
  • MySQL 쿼리 옵티마이저의 한계
  • __UNION 제한 사항
  • __동등 전파(Equality Propagation)
  • __병렬 실행
  • __동일한 테이블에 대한 SELECT와 UPDATE
  • 특정 유형의 쿼리 최적화
  • __COUNT() 쿼리 최적화
  • __조인 쿼리 최적화
  • __ROLLUP으로 GROUP BY 최적화
  • __LIMIT 및 OFFSET 최적화
  • __SQL_CALC_FOUND_ROWS 최적화
  • __UNION 최적화
  • 요약
  •  
  • ▣ 09장: 복제
  • 복제 개요
  • __복제 작동 방식
  • 복제의 내부 동작
  • __복제 형식 선택
  • __전역 트랜잭션 식별자
  • __복제 충돌의 대비
  • __지연 복제
  • __멀티 스레드 복제
  • __반동기 복제
  • __복제 필터
  • 복제 페일오버
  • __계획된 승격
  • __계획되지 않은 승격
  • __승격의 트레이드 오프
  • 복제 토폴로지
  • __액티브/패시브(Active/Passive)
  • __액티브/리드 풀
  • __권장하지 않는 토폴로지
  • 복제 관리 및 유지 관리
  • __복제 모니터링
  • __복제 지연 측정
  • __레플리카와 소스의 일치 여부 확인
  • 복제 문제와 해법
  • __소스의 바이너리 로그 손상
  • __고유하지 않은 서버 ID
  • __정의되지 않은 서버 ID
  • __임시 테이블 누락
  • __모든 업데이트를 복제하지 않음
  • __과도한 복제 지연
  • __소스의 오버사이즈 패킷
  • __디스크 공간 없음
  • __복제 제한 사항
  • 요약
  •  
  • ▣ 10장: 백업 및 복구
  • 백업을 하는 이유
  • 복구 요구 사항 정의
  • MySQL 백업 솔루션 설계
  • __온라인 백업 또는 오프라인 백업
  • __논리적 백업 또는 원시 백업
  • __백업 대상
  • __증분 백업 및 차등 백업
  • __복제
  • 바이너리 로그 관리 및 백업
  • 백업과 복구 도구
  • __MySQL 엔터프라이즈 백업
  • __Percona XtraBackup
  • __mydumper
  • __mysqldump
  • 데이터 백업하기
  • __논리적 SQL 백업
  • __파일시스템 스냅숏
  • __Percona XtraBackup
  • 백업에서 복구하기
  • __논리적 백업 복원
  • __스냅숏에서 원시 파일 복원
  • __Percona XtraBackup으로 복원하기
  • __원시 파일 복원 후 MySQL 시작하기
  • 요약
  •  
  • ▣ 11장: MySQL 스케일링
  • 스케일링이란?
  • 읽기 대 쓰기 바운드 워크로드
  • __워크로드의 이해
  • __읽기 바운드 워크로드
  • __쓰기 바운드 워크로드
  • 기능적 샤딩
  • 읽기 풀로 읽기 스케일링
  • __읽기 풀 구성 관리
  • __읽기 풀에 대한 상태 확인(Health checks)
  • __로드 밸런싱 알고리즘 선택
  • 대기열
  • 샤딩으로 쓰기 스케일링
  • __분할 방식 선택
  • __다중 파티셔닝 키
  • __샤드 간의 쿼리
  • __Vitess
  • __ProxySQL
  • 요약
  •  
  • ▣ 12장: 클라우드에서의 MySQL
  • 관리형 MySQL
  • __MySQL용 Amazon Aurora
  • __GCP Cloud SQL
  • 가상 머신의 MySQL
  • __클라우드의 머신 유형
  • __올바른 머신 유형 선택
  • __올바른 디스크 유형 선택
  • __추가적인 팁
  • 요약
  •  
  • ▣ 13장: MySQL 규정 준수
  • 규정 준수란?
  • __서비스 조직 제어 유형 2(SOC 2)
  • __사베인스-옥슬리 법(SOX)
  • __결제 카드 산업 데이터 보안 표준(PCI DSS)
  • __건강 보험 이전 및 책임에 관한 법률(HIPAA)
  • __연방정부 위험 및 인증 관리 프로그램(FedRAMP)
  • __개인 정보 보호 규정(GDPR)
  • __슈렘스 II(Schrems II)
  • 규정 준수 제어를 위한 구축
  • __시크릿 관리
  • __역할과 데이터의 분리
  • __변경 사항 추적
  • __백업 및 복원 절차
  • 요약
  •  
  • ▣ 부록A: MySQL 업그레이드하기
  • 업그레이드를 해야 하는 이유
  • 라이프 사이클 업그레이드
  • 업그레이드 테스트
  • __개발 환경 테스트
  • __실 운영 미러링
  • __레플리카
  • __도구 사용
  • 대규모 업그레이드
  • 요약
  •  
  • ▣ 부록B: Kubernetes의 MySQL
  • Kubernetes를 통한 자원 프로비저닝
  • __신중한 목표 범위 지정
  • __컨트롤 플레인 선택
  • __세부 사항
  • 요약

정오표

  • 89쪽, 본문 첫 번째 줄

    SSD는 일반적으로 SSH보다

    ==>

    SSD는 일반적으로 HDD보다

WHERE TO BUY · 정가 28,000원
WHERE TO BUY · 정가 28,000원