쪽수
ISBN
브랜드
데이터의 방향키를 잡는 가장 현명한 방법, MySQL
MySQL로 데이터베이스를 효과적으로 구성하고 운영하는 방법을 배워봅시다. 이 책은 최신 버전인 MySQL 8.0(MySQL 5.7 정보 포함)을 바탕으로 강력한 RDBMS를 최대한 활용하는 데 필요한 인사이트와 도구를 소개합니다. 또한 데이터베이스를 구성하고 관리하는 모든 이가 MySQL을 쉽게 활용하도록 다양한 실습을 제공합니다.
전 세계의 많은 고객과 협업하며 다양한 사용 사례를 경험한 저자들이 개발자와 DBA가 비용을 최소화하고 가용성과 성능을 극대화하는 방법을 안내합니다. 데이터베이스의 기본 개념부터 고급 쿼리 작성, 모니터링, 오류 해결, 데이터베이스 관리 및 보안, 백업 및 복구, 효율성 향상을 위한 튜닝 방법에 이르기까지 MySQL에 관한 모든 것을 만나보세요.
데이터베이스 설계부터 효율적인 운영 노하우까지 넓고 깊은 MySQL 가이드
이 책은 MySQL을 사용자 모두를 위한 가이드북이다. 리눅스(우분투, CentOS 등)나 윈도우, 맥 같은 OS에서 원하는 MySQL 버전을 설치하는 방법부터 실제 서버를 운영할 때 알아두면 좋은 각종 프로그램까지 소개하며 실무적인 지식을 쌓게 한다. 초보자라면 자세한 개념 설명과 쿼리 실습을 통해 데이터베이스 입문에 필요한 지식을 얻을 수 있고, 실무자라면 저자가 다양한 기업을 대상으로 컨설팅한 경험으로부터 노하우를 전수받을 수 있다.
대상 독자
● MySQL을 처음 배우는 개발자
● MySQL의 핵심을 폭넓게 이해하고 실무에 활용하고 싶은 개발자와 DBA
● 다른 데이터베이스 시스템을 사용하다가 MySQL을 처음 시작하는 사람
배우는 내용
● MySQL 및 데이터베이스의 개념
● 데이터베이스 인프라 설계 방법
● 고효율 쿼리 작성법
● MySQL 데이터베이스 모니터링 및 문제 해결법
이 책의 구성
● Part I. MySQL 시작
○ 다양한 환경에 MySQL 설치하고 설정하는 법
● Part II. MySQL 사용법: 기본 탄탄히 다지기
○ 데이터베이스 기본 구조와 설계 방법
○ SQL의 기본 문법과 이를 활용한 실제 데이터 조회, 입력, 수정, 삭제 실습
● Part III. 제품 환경의 MySQL: 실제 환경에서 MySQL 100% 활용하는 법
○ 실제 업무에서 중요한 트랜잭션과 잠금 처리 방법
○ 데이터의 안전을 위한 백업과 복구, 서버의 최적화 방법
● Part IV. 기타: MySQL을 활용하는 고급 기술과 서버 모니터링 방법
○ 실시간 모니터링과 분석으로 익히는 서버 상태 체크 방법
○ 클라우드 환경에서의 MySQL 활용, 로드 밸런싱 등 고급 지식 학습
이 책의 특징
● MySQL의 기본부터 고급 주제까지 핵심을 다루며 독자가 전체적인 이해를 얻을 수 있는 통합적 가이드
● 문제 해결과 최적화에 초점을 맞춘 실용적인 팁과 모범 사례를 소개
● 직접 입력하며 확인하는 코드 예제
● MySQL 8.0 버전을 중심으로 최신 기능 및 변경 사항을 소개(5.7 내용 포함)
● 클라우드 환경의 MySQL 활용과 최신 기술 트렌드 소개
PART I MySQL 시작
Chapter 1 MySQL 설치
_1.1 MySQL의 포크 버전
__1.1.1 MySQL 커뮤니티 에디션
__1.1.2 MySQL 퍼코나 서버
__1.1.3 MySQL 엔터프라이즈 에디션
_1.2 설치할 플랫폼과 버전 선택
__1.2.1 1단계: 배포판 다운로드
__1.2.2 2단계: 배포 버전 설치
__1.2.3 3단계: 설치 후 필수 설정 작업
__1.2.4 4단계: 성능 측정
_1.3 리눅스에 MySQL 설치
__1.3.1 CentOS 7에 MySQL 설치
__1.3.2 록키 리눅스 9에 MySQL 설치
__1.3.3 우분투 22.04 LTS(재미 젤리피시)에 MySQL 설치
_1.4 맥OS Ventura에 MySQL 설치
__1.4.1 MySQL 8.0 설치
_1.5 윈도우11에 MySQL 설치
_1.6 MySQL 폴더 구성
__1.6.1 MySQL 5.7 기본 파일
__1.6.2 MySQL 8.0 기본 파일
_1.7 명령줄 인터페이스 사용법
_1.8 도커
__1.8.1 도커 설치
_1.9 샌드박스 사용법
__1.9.1 DBdeployer 설치
__1.9.2 DBdeployer 사용
_1.10 MySQL 서버 업그레이드
PART II MySQL 사용법
Chapter 2 데이터베이스 모델링과 설계
_2.1 데이터베이스 개발 실패 사례
_2.2 데이터베이스 설계 과정
_2.3 관계형 엔티티 모델
__2.3.1 엔티티 표현 방법
__2.3.2 관계 표현
__2.3.3 부분 참여와 전체 참여
__2.3.4 엔티티 또는 속성
__2.3.5 엔티티 또는 관계
__2.3.6 중간 엔티티
__2.3.7 약한 엔티티와 강한 엔티티
_2.4 데이터베이스 정규화
_2.5 예시 테이블 정규화
__2.5.1 제1정규형: 반복 그룹 제거
__2.5.2 제2정규형: 중복 데이터 제거
__2.5.3 제3정규형: 키에 종속하지 않는 데이터 제거
_2.6 엔티티 관계 설계 예시
_2.7 엔티티 관계 모델 사용
__2.7.1 데이터베이스 테이블에 엔티티 및 관계 연결
__2.7.2 은행 데이터베이스 ER 모델 생성
__2.7.3 Workbench를 사용한 EER - MySQL 데이터베이스 변환
Chapter 3 기본 SQL
_3.1 sakila 데이터베이스 사용
_3.2 SELECT 문 및 기본 쿼리 기술
__3.2.1 단일 테이블 SELECT
__3.2.2 열 선택
__3.2.3 WHERE 절로 행 선택
__3.2.4 ORDER BY 절
__3.2.5 LIMIT 절
__3.2.6 조인을 사용한 두 테이블의 결합
_3.3 INSERT 문
__3.3.1 INSERT 기본 사용법
__3.3.2 대체 구문
_3.4 DELETE 문
__3.4.1 DELETE 기본 사용법
__3.4.2 WHERE, ORDER BY, LIMIT 사용
__3.4.3 TRUNCATE로 모든 행 삭제
_3.5 UPDATE 문
__3.5.1 UPDATE 기본 사용법
__3.5.2 WHERE, ORDER BY, LIMIT 사용
_3.6 SHOW와 mysqlshow로 데이터베이스와 테이블 탐색
Chapter 4 데이터베이스 구성 작업
_4.1 데이터베이스 생성 및 사용
_4.2 테이블 생성
__4.2.1 기본
__4.2.2 데이터 정렬 방식과 문자 집합
__4.2.3 테이블 생성 시 유용한 기타 기능
__4.2.4 열에 사용할 수 있는 타입
__4.2.5 키와 인덱스
__4.2.6 AUTO_INCREMENT 기능
_4.3 구조 변경
__4.3.1 열 추가, 제거, 변경
__4.3.2 인덱스 추가, 제거, 변경
__4.3.3 테이블 이름 변경 및 기타 구조 변경
_4.4 구조 제거
__4.4.1 데이터베이스 제거
__4.4.2 테이블 제거
Chapter 5 고급 쿼리
_5.1 별칭
__5.1.1 열 별칭
__5.1.2 테이블 별칭
_5.2 데이터 집계
__5.2.1 DISTINCT 절
__5.2.2 GROUP BY 절
__5.2.3 HAVING 절
_5.3 고급 조인
__5.3.1 내부 조인
__5.3.2 통합
__5.3.3 왼쪽 조인과 오른쪽 조인
__5.3.4 자연 조인
__5.3.5 조인의 상수 표현식
_5.4 중첩 쿼리
__5.4.1 중첩 쿼리 기초
__5.4.2 ANY, SOME, ALL, IN, NOT IN 절
__5.4.3 EXISTS와 NOT EXISTS 절
__5.4.4 FROM 절에서의 중첩 쿼리
__5.4.5 JOIN에서의 중첩 쿼리
_5.5 사용자 변수
PART III 제품 환경의 MySQL
Chapter 6 트랜잭션 및 잠금
_6.1 격리 수준
__6.1.1 REPEATABLE READ
__6.1.2 READ COMMITTED
__6.1.3 READ UNCOMMITTED
__6.1.4 SERIALIZABLE
_6.2 잠금
__6.2.1 메타데이터 잠금
__6.2.2 행 잠금
__6.2.3 교착 상태
_6.3 격리 및 잠금과 관련된 MySQL 매개변수
Chapter 7 MySQL 추가 활용법
_7.1 쿼리를 사용한 데이터 입력
_7.2 쉼표로 구분된 파일(CSV)에서 데이터 로드
_7.3 쉼표로 구분된 파일에 데이터 입력
_7.4 쿼리를 사용한 테이블 생성
_7.5 여러 테이블에서 업데이트 및 삭제 수행
__7.5.1 삭제
__7.5.2 업데이트
_7.6 데이터 변경
_7.7 EXPLAIN 문
_7.8 대체 스토리지 엔진
__7.8.1 InnoDB
__7.8.2 MyISAM과 Aria
__7.8.3 MyRocks와 TokuDB
__7.8.4 기타 테이블 유형
Chapter 8 사용자 및 권한 관리
_8.1 사용자 및 권한 이해
_8.2 루트 사용자
_8.3 새로운 사용자 생성 및 사용
_8.4 권한 부여 테이블
_8.5 사용자 관리 명령 및 로그 기록
_8.6 사용자 수정 및 제거
__8.6.1 사용자 수정
__8.6.2 사용자 제거
_8.7 권한
__8.7.1 정적 권한 대 동적 권한
__8.7.2 SUPER 권한
__8.7.3 권한 관리 명령
__8.7.4 권한 확인
__8.7.5 GRANT OPTION 권한
_8.8 역할
_8.9 루트 비밀번호 변경 및 비보안적 실행
_8.10 보안 설정을 위한 방법
Chapter 9 옵션 파일 사용법
_9.1 옵션 파일의 구조
_9.2 옵션 범위
_9.3 옵션 파일 검색 순서
_9.4 특수 옵션 파일
__9.4.1 로그인 경로 구성 파일
__9.4.2 영구 시스템 변수 구성 파일
_9.5 유효한 옵션 결정
Chapter 10 백업 및 복구
_10.1 물리적 및 논리적 백업
__10.1.1 논리적 백업
__10.1.2 물리적 백업
__10.1.3 논리적 및 물리적 백업 개요
_10.2 백업 도구로 복제
__10.2.1 인프라 장애
__10.2.2 배포 버그
_10.3 mysqldump 프로그램
__10.3.1 mysqldump를 사용한 부트스트랩 복제
_10.4 SQL 덤프 파일에서 데이터 로드
_10.5 mysqlpump
_10.6 mydumper와 myloader
_10.7 콜드 백업 및 파일 시스템 스냅샷
_10.8 XtraBackup
__10.8.1 백업 및 복구
__10.8.2 고급 기능
__10.8.3 XtraBackup을 사용한 증분 백업
_10.9 기타 물리적 백업 도구
__10.9.1 MySQL 엔터프라이즈 백업
__10.9.2 mariabackup
_10.10 특정 시점 복구
__10.10.1 바이너리 로그에 대한 기술적 배경
__10.10.2 바이너리 로그 보존
__10.10.3 PITR 대상 구별
__10.10.4 특정 시점 복구: XtraBackup
__10.10.5 특정 시점 복구: mysqldump
_10.11 InnoDB 테이블스페이스 내보내기 및 가져오기
__10.11.1 기술적 배경
__10.11.2 테이블스페이스 내보내기
__10.11.3 테이블스페이스 가져오기
__10.11.4 XtraBackup 단일 테이블 복원
_10.12 백업 테스트 및 확인
_10.13 데이터베이스 백업 전략 입문서
Chapter 11 서버 구성 및 튜닝
_11.1 MySQL 서버 데몬
_11.2 MySQL 서버 변수
__11.2.1 서버 설정 확인
__11.2.2 모범 사례
PART IV 기타
Chapter 12 MySQL 서버 모니터링
_12.1 운영체제 지표
__12.1.1 CPU
__12.1.2 디스크
__12.1.3 메모리
__12.1.4 네트워크
_12.2 MySQL 서버 살펴보기
__12.2.1 상태 변수
__12.2.2 기본 모니터링 조합
__12.2.3 느린 쿼리 로그
__12.2.4 InnoDB 엔진 상태 보고서
_12.3 조사 방법
__12.3.1 USE 방법
__12.3.2 RED 방법
_12.4 MySQL 모니터링 도구
_12.5 사고/진단 및 수동 데이터 수집
__12.5.1 시스템 상태 변수 값의 주기적 수집
__12.5.2 pt-stalk를 사용한 MySQL 및 OS 지표 수집
__12.5.3 확장된 수동 데이터 수집
Chapter 13 고가용성
_13.1 비동기 복제
__13.1.1 소스 및 복제본에 설정할 기본 매개변수
__13.1.2 XtraBackup을 사용한 복제본 생성
__13.1.3 복제 플러그인을 사용한 복제본 생성
__13.1.4 mysqldump를 사용한 복제본 생성
__13.1.5 mydumper 및 myloader를 사용해 복제본 생성
__13.1.6 그룹 복제
_13.2 동기 복제
__13.2.1 Galera/PXC 클러스터
Chapter 14 클라우드 MySQL
_14.1 Database-as-a-Service(DBaaS)
__14.1.1 MySQL/MariaDB용 아마존 RDS
__14.1.2 MySQL용 구글 클라우드 SQL
__14.1.3 애저 SQL
_14.2 아마존 오로라
_14.3 MySQL 클라우드 인스턴스
_14.4 쿠버네티스에서 MySQL 사용
__14.4.1 쿠버네티스에 XtraDB 클러스터 배포
Chapter 15 MySQL 로드 밸런싱
_15.1 애플리케이션 드라이버를 사용한 부하 분산
_15.2 ProxySQL 로드 밸런서
__15.2.1 ProxySQL 설치 및 구성
_15.3 HAProxy 로드 밸런서
__15.3.1 HAProxy 설치 및 구성
_15.4 MySQL 라우터
Chapter 16 기타 주제
_16.1 MySQL 셸
__16.1.1 MySQL 셸 설치
__16.1.2 MySQL 셸을 사용해 샌드박스 InnoDB 클러스터 배포
__16.1.3 MySQL 셸 유틸리티
_16.2 Flame 그래프
_16.3 소스를 사용한 MySQL 빌드
__16.3.1 우분투 22.04 LTS(재미 젤리피시) 및 ARM 프로세서용 MySQL 구축
_16.4 MySQL 충돌 원인 분석
전체 평점
4.8
오탈자를 발견하셨다면 작성해주세요.
34,400원
34,400원