알라딘

Real MySQL 8.0 2권 - 개발자와 DBA를 위한 MySQL 실전 가이드

백은빈, 이성욱 (지은이) | 위키북스
  • 등록일2022-09-26
  • 파일포맷pdf
  • 파일크기12 M  
  • 지원기기아이폰, 아이패드, 안드로이드, 태블릿, PC
  • 평점 평점점 평가없음

책소개

MySQL 서버를 활용하는 프로젝트에 꼭 필요한 경험과 지식을 담았습니다!

저자소개

컴퓨터 과학을 전공하고 네이버와 라인을 거쳐 카카오 및 밸런스히어로에서 DBA로 근무했으며, 현재 당근마켓 DB팀 리더로 근무하고 있다.

저서
- PHP5 웹 프로그래밍
- MySQL 성능 최적화
- Real MySQL

번역서
- MySQL 성능 최적화(2010. 위키북스)

목차

▣ 11장: 쿼리 작성 및 최적화

11.1 쿼리 작성과 연관된 시스템 변수

___11.1.1 SQL 모드

___11.1.2 영문 대소문자 구분

___11.1.3 MySQL 예약어

11.2 매뉴얼의 SQL 문법 표기를 읽는 방법

11.3 MySQL 연산자와 내장 함수

___11.3.1 리터럴 표기법 문자열

___11.3.2 MySQL 연산자

___11.3.3 MySQL 내장 함수

11.4 SELECT

___11.4.1 SELECT 절의 처리 순서

___11.4.2 WHERE 절과 GROUP BY 절, ORDER BY 절의 인덱스 사용

___11.4.3 WHERE 절의 비교 조건 사용 시 주의사항

___11.4.4 DISTINCT

___11.4.5 LIMIT n

___11.4.6 COUNT()

___11.4.7 JOIN

___11.4.8 GROUP BY

___11.4.9 ORDER BY

___11.4.10 서브쿼리

___11.4.11 CTE(Common Table Expression)

___11.4.12 윈도우 함수(Window Function)

11.4.13 잠금을 사용하는 SELECT

11.5 INSERT

___11.5.1 고급 옵션

___11.5.2 LOAD DATA 명령 주의 사항

___11.5.3 성능을 위한 테이블 구조

11.6 UPDATE와 DELETE

___11.6.1 UPDATE ... ORDER BY ... LIMIT n

___11.6.2 JOIN UPDATE

___11.6.3 여러 레코드 UPDATE

___11.6.4 JOIN DELETE

11.7 스키마 조작(DDL)

___11.7.1 온라인 DDL

___11.7.2 데이터베이스 변경

___11.7.3 테이블 스페이스 변경

___11.7.4 테이블 변경

___11.7.5 칼럼 변경

___11.7.6 인덱스 변경

___11.7.7 테이블 변경 묶음 실행

___11.7.8 프로세스 조회 및 강제 종료

___11.7.9 활성 트랜잭션 조회

11.8 쿼리 성능 테스트

___11.8.1 쿼리의 성능에 영향을 미치는 요소



▣ 12장: 확장 검색

12.1 전문 검색

___12.1.1 전문 검색 인덱스의 생성과 검색

___12.1.2 전문 검색 쿼리 모드

___12.1.3 전문 검색 인덱스 디버깅

12.2 공간 검색

___12.2.1 용어 설명

___12.2.2 SRS(Spatial Reference System)

___12.2.3 투영 좌표계와 평면 좌표계

___12.2.4 지리 좌표계



▣ 13장: 파티션

13.1 개요

___13.1.1 파티션을 사용하는 이유

___13.1.2 MySQL 파티션의 내부 처리

13.2 주의사항

___13.2.1 파티션의 제약 사항

___13.2.2 파티션 사용 시 주의사항

13.3 MySQL 파티션의 종류

___13.3.1 레인지 파티션

___13.3.2 리스트 파티션

___13.3.3 해시 파티션

___13.3.4 키 파티션

___13.3.5 리니어 해시 파티션/리니어 키 파티션

___13.3.6 파티션 테이블의 쿼리 성능



▣ 14장: 스토어드 프로그램

14.1 스토어드 프로그램의 장단점

___14.1.1 스토어드 프로그램의 장점

___14.1.2 스토어드 프로그램의 단점

14.2 스토어드 프로그램의 문법

___14.2.1 예제 테스트 시 주의사항

___14.2.2 스토어드 프로시저

___14.2.3 스토어드 함수

___14.2.4 트리거

___14.2.5 이벤트

___14.2.6 스토어드 프로그램 본문(Body) 작성

14.3 스토어드 프로그램의 보안 옵션

___14.3.1 DEFINER와 SQL SECURITY 옵션

___14.3.2 DETERMINISTIC과 NOT DETERMINISTIC 옵션

14.4 스토어드 프로그램의 참고 및 주의사항

___14.4.1 한글 처리

___14.4.2 스토어드 프로그램과 세션 변수

___14.4.3 스토어드 프로시저와 재귀 호출

___14.4.4 중첩된 커서 사용



▣ 15장: 데이터 타입

15.1 문자열(CHAR와 VARCHAR)

___15.1.1 저장 공간

___15.1.2 저장 공간과 스키마 변경(Online DDL)

___15.1.3 문자 집합(캐릭터 셋)

___15.1.4 콜레이션(Collation)

___15.1.5 비교 방식

___15.1.6 문자열 이스케이프 처리

15.2 숫자

___15.2.1 정수

___15.2.2 부동 소수점

___15.2.3 DECIMAL

___15.2.4 정수 타입의 칼럼을 생성할 때의 주의사항

___15.2.5 자동 증가(AUTO_INCREMENT) 옵션 사용

15.3 날짜와 시간

___15.3.1 자동 업데이트

15.4 ENUM과 SET

___15.4.1 ENUM

___15.4.2 SET

15.5 TEXT와 BLOB

15.6 공간 데이터 타입

___15.6.1 공간 데이터 생성

___15.6.2 공간 데이터 조회

15.7 JSON 타입

___15.7.1 저장 방식

___15.7.2 부분 업데이트 성능

___15.7.3 JSON 타입 콜레이션과 비교

___15.7.4 JSON 칼럼 선택

___15.8 가상 칼럼(파생 칼럼)



▣ 16장: 복제

16.1 개요

16.2 복제 아키텍처

16.3 복제 타입

___16.3.1 바이너리 로그 파일 위치 기반 복제

___16.3.2 글로벌 트랜잭션 아이디(GTID) 기반 복제

16.4 복제 데이터 포맷

___16.4.1 Statement 기반 바이너리 로그 포맷

___16.4.2 Row 기반 바이너리 로그 포맷

___16.4.3 Mixed 포맷

___16.4.4 Row 포맷의 용량 최적화

16.5 복제 동기화 방식

___16.5.1 비동기 복제(Asynchronous replication)

___16.5.2 반동기 복제(Semi-synchronous replication)

16.6 복제 토폴로지

___16.6.1 싱글 레플리카 복제 구성

___16.6.2 멀티 레플리카 복제 구성

___16.6.3 체인 복제 구성

___16.6.4 듀얼 소스 복제 구성

___16.6.5 멀티 소스 복제 구성

16.7 복제 고급 설정

___16.7.1 지연된 복제(Delayed Replication)

___16.7.2 멀티 스레드 복제(Multi-threaded Replication)

___16.7.3 크래시 세이프 복제(Crash-safe Replication)

___16.7.4 필터링된 복제(Filtered Replication)



▣ 17장: InnoDB 클러스터

17.1 InnoDB 클러스터 아키텍처

17.2 그룹 복제(Group Replication)

___17.2.1 그룹 복제 아키텍처

___17.2.2 그룹 복제 모드

___17.2.3 그룹 멤버 관리(Group Membership)

___17.2.4 그룹 복제에서의 트랜잭션 처리

___17.2.5 그룹 복제의 자동 장애 감지 및 대응

___17.2.6 그룹 복제의 분산 복구

___17.2.7 그룹 복제 요구사항

___17.2.8 그룹 복제 제약 사항

17.3 MySQL 셸

17.4 MySQL 라우터

17.5 InnoDB 클러스터 구축

___17.5.1 InnoDB 클러스터 요구사항

___17.5.2 InnoDB 클러스터 생성

17.6 InnoDB 클러스터 모니터링

17.7 InnoDB 클러스터 작업

___17.7.1 클러스터 모드 변경

___17.7.2 프라이머리 변경

___17.7.3 인스턴스 제거

___17.7.4 클러스터 해체

___17.7.5 클러스터 및 인스턴스 설정 변경

17.8 InnoDB 클러스터 트러블슈팅

___17.8.1 클러스터 인스턴스 장애

___17.8.2 클러스터의 정족수 손실

17.9 InnoDB 클러스터 버전 업그레이드

17.10 InnoDB 클러스터 제약 사항



▣ 18장: Performance 스키마 & Sys 스키마

18.1 Performance 스키마란?

18.2 Performance 스키마 구성

___18.2.1 Setup 테이블

___18.2.2 Instance 테이블

___18.2.3 Connection 테이블

___18.2.4 Variable 테이블

___18.2.5 Event 테이블

___18.2.6 Summary 테이블

___18.2.7 Lock 테이블

___18.2.8 Replication 테이블

___18.2.9 Clone 테이블

___18.2.10 기타 테이블

18.3 Performance 스키마 설정

___18.3.1 메모리 사용량 설정

___18.3.2 데이터 수집 및 저장 설정

18.4 Sys 스키마란?

18.5 Sys 스키마 사용을 위한 사전 설정

18.6 Sys 스키마 구성

18.7 Performance 스키마 및 Sys 스키마 활용 예제

___18.7.1 호스트 접속 이력 확인

___18.7.2 미사용 DB 계정 확인

___18.7.3 MySQL 총 메모리 사용량 확인

___18.7.4 스레드별 메모리 사용량 확인

___18.7.5 미사용 인덱스 확인

___18.7.6 중복된 인덱스 확인

___18.7.7 변경이 없는 테이블 목록 확인

___18.7.8 I/O 요청이 많은 테이블 목록 확인

___18.7.9 테이블별 작업량 통계 확인

___18.7.10 테이블의 Auto-Increment 칼럼 사용량 확인

___18.7.11 풀 테이블 스캔 쿼리 확인

___18.7.12 자주 실행되는 쿼리 목록 확인

___18.7.13 실행 시간이 긴 쿼리 목록 확인

___18.7.14 정렬 작업을 수행한 쿼리 목록 확인

___18.7.15 임시 테이블을 생성하는 쿼리 목록 확인

___18.7.16 트랜잭션이 활성 상태인 커넥션에서 실행한 쿼리 내역 확인

___18.7.17 쿼리 프로파일링

___18.7.18 ALTER 작업 진행률 확인

___18.7.19 메타데이터 락 대기 확인

___18.7.20 데이터 락 대기 확인

한줄 서평