나에게 필요한 지식과 기술 찾기

러닝 MySQL

MySQL 운영 종합 가이드, 데이터베이스 설계부터 비용 최적화까지

출간일

2023.09.29

레벨

초중급

평점

4.8(26명)

정가

43,000원

판매가

38,700원

총 결제 금액

10%

38,700원

적립 예정

1,930P

쪽수

732쪽

ISBN

9791169211482

브랜드

한빛미디어

데이터의 방향키를 잡는 가장 현명한 방법, MySQL

 

MySQL로 데이터베이스를 효과적으로 구성하고 운영하는 방법을 배워봅시다. 이 책은 최신 버전인 MySQL 8.0(MySQL 5.7 정보 포함)을 바탕으로 강력한 RDBMS를 최대한 활용하는 데 필요한 인사이트와 도구를 소개합니다. 또한 데이터베이스를 구성하고 관리하는 모든 이가 MySQL을 쉽게 활용하도록 다양한 실습을 제공합니다.

 

전 세계의 많은 고객과 협업하며 다양한 사용 사례를 경험한 저자들이 개발자와 DBA가 비용을 최소화하고 가용성과 성능을 극대화하는 방법을 안내합니다. 데이터베이스의 기본 개념부터 고급 쿼리 작성, 모니터링, 오류 해결, 데이터베이스 관리 및 보안, 백업 및 복구, 효율성 향상을 위한 튜닝 방법에 이르기까지 MySQL에 관한 모든 것을 만나보세요.

 

700_상세이미지_러닝 MySQL.jpg

출판사 리뷰

데이터베이스 설계부터 효율적인 운영 노하우까지 넓고 깊은 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 충돌 원인 분석

리뷰

오탈자

43,000원

10%

38,700원