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

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

저자

비니시우스그리파,세르게이쿠즈미체프

저자:비니시우스그리파,세르게이쿠즈미체프

역자:김선종

목차

PARTIMySQL시작

Chapter1MySQL설치
_1.1MySQL의포크버전
__1.1.1MySQL커뮤니티에디션
__1.1.2MySQL퍼코나서버
__1.1.3MySQL엔터프라이즈에디션
_1.2설치할플랫폼과버전선택
__1.2.11단계:배포판다운로드
__1.2.22단계:배포버전설치
__1.2.33단계:설치후필수설정작업
__1.2.44단계:성능측정
_1.3리눅스에MySQL설치
__1.3.1CentOS7에MySQL설치
__1.3.2록키리눅스9에MySQL설치
__1.3.3우분투22.04LTS(재미젤리피시)에MySQL설치
_1.4맥OSVentura에MySQL설치
__1.4.1MySQL8.0설치
_1.5윈도우11에MySQL설치
_1.6MySQL폴더구성
__1.6.1MySQL5.7기본파일
__1.6.2MySQL8.0기본파일
_1.7명령줄인터페이스사용법
_1.8도커
__1.8.1도커설치
_1.9샌드박스사용법
__1.9.1DBdeployer설치
__1.9.2DBdeployer사용
_1.10MySQL서버업그레이드

PARTIIMySQL사용법

Chapter2데이터베이스모델링과설계
_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.3Workbench를사용한EER-MySQL데이터베이스변환

Chapter3기본SQL
_3.1sakila데이터베이스사용
_3.2SELECT문및기본쿼리기술
__3.2.1단일테이블SELECT
__3.2.2열선택
__3.2.3WHERE절로행선택
__3.2.4ORDERBY절
__3.2.5LIMIT절
__3.2.6조인을사용한두테이블의결합
_3.3INSERT문
__3.3.1INSERT기본사용법
__3.3.2대체구문
_3.4DELETE문
__3.4.1DELETE기본사용법
__3.4.2WHERE,ORDERBY,LIMIT사용
__3.4.3TRUNCATE로모든행삭제
_3.5UPDATE문
__3.5.1UPDATE기본사용법
__3.5.2WHERE,ORDERBY,LIMIT사용
_3.6SHOW와mysqlshow로데이터베이스와테이블탐색

Chapter4데이터베이스구성작업
_4.1데이터베이스생성및사용
_4.2테이블생성
__4.2.1기본
__4.2.2데이터정렬방식과문자집합
__4.2.3테이블생성시유용한기타기능
__4.2.4열에사용할수있는타입
__4.2.5키와인덱스
__4.2.6AUTO_INCREMENT기능
_4.3구조변경
__4.3.1열추가,제거,변경
__4.3.2인덱스추가,제거,변경
__4.3.3테이블이름변경및기타구조변경
_4.4구조제거
__4.4.1데이터베이스제거
__4.4.2테이블제거

Chapter5고급쿼리
_5.1별칭
__5.1.1열별칭
__5.1.2테이블별칭
_5.2데이터집계
__5.2.1DISTINCT절
__5.2.2GROUPBY절
__5.2.3HAVING절
_5.3고급조인
__5.3.1내부조인
__5.3.2통합
__5.3.3왼쪽조인과오른쪽조인
__5.3.4자연조인
__5.3.5조인의상수표현식
_5.4중첩쿼리
__5.4.1중첩쿼리기초
__5.4.2ANY,SOME,ALL,IN,NOTIN절
__5.4.3EXISTS와NOTEXISTS절
__5.4.4FROM절에서의중첩쿼리
__5.4.5JOIN에서의중첩쿼리
_5.5사용자변수

PARTIII제품환경의MySQL

Chapter6트랜잭션및잠금
_6.1격리수준
__6.1.1REPEATABLEREAD
__6.1.2READCOMMITTED
__6.1.3READUNCOMMITTED
__6.1.4SERIALIZABLE
_6.2잠금
__6.2.1메타데이터잠금
__6.2.2행잠금
__6.2.3교착상태
_6.3격리및잠금과관련된MySQL매개변수

Chapter7MySQL추가활용법
_7.1쿼리를사용한데이터입력
_7.2쉼표로구분된파일(CSV)에서데이터로드
_7.3쉼표로구분된파일에데이터입력
_7.4쿼리를사용한테이블생성
_7.5여러테이블에서업데이트및삭제수행
__7.5.1삭제
__7.5.2업데이트
_7.6데이터변경
_7.7EXPLAIN문
_7.8대체스토리지엔진
__7.8.1InnoDB
__7.8.2MyISAM과Aria
__7.8.3MyRocks와TokuDB
__7.8.4기타테이블유형

Chapter8사용자및권한관리
_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.2SUPER권한
__8.7.3권한관리명령
__8.7.4권한확인
__8.7.5GRANTOPTION권한
_8.8역할
_8.9루트비밀번호변경및비보안적실행
_8.10보안설정을위한방법

Chapter9옵션파일사용법
_9.1옵션파일의구조
_9.2옵션범위
_9.3옵션파일검색순서
_9.4특수옵션파일
__9.4.1로그인경로구성파일
__9.4.2영구시스템변수구성파일
_9.5유효한옵션결정

Chapter10백업및복구
_10.1물리적및논리적백업
__10.1.1논리적백업
__10.1.2물리적백업
__10.1.3논리적및물리적백업개요
_10.2백업도구로복제
__10.2.1인프라장애
__10.2.2배포버그
_10.3mysqldump프로그램
__10.3.1mysqldump를사용한부트스트랩복제
_10.4SQL덤프파일에서데이터로드
_10.5mysqlpump
_10.6mydumper와myloader
_10.7콜드백업및파일시스템스냅샷
_10.8XtraBackup
__10.8.1백업및복구
__10.8.2고급기능
__10.8.3XtraBackup을사용한증분백업
_10.9기타물리적백업도구
__10.9.1MySQL엔터프라이즈백업
__10.9.2mariabackup
_10.10특정시점복구
__10.10.1바이너리로그에대한기술적배경
__10.10.2바이너리로그보존
__10.10.3PITR대상구별
__10.10.4특정시점복구:XtraBackup
__10.10.5특정시점복구:mysqldump
_10.11InnoDB테이블스페이스내보내기및가져오기
__10.11.1기술적배경
__10.11.2테이블스페이스내보내기
__10.11.3테이블스페이스가져오기
__10.11.4XtraBackup단일테이블복원
_10.12백업테스트및확인
_10.13데이터베이스백업전략입문서

Chapter11서버구성및튜닝
_11.1MySQL서버데몬
_11.2MySQL서버변수
__11.2.1서버설정확인
__11.2.2모범사례

PARTIV기타

Chapter12MySQL서버모니터링
_12.1운영체제지표
__12.1.1CPU
__12.1.2디스크
__12.1.3메모리
__12.1.4네트워크
_12.2MySQL서버살펴보기
__12.2.1상태변수
__12.2.2기본모니터링조합
__12.2.3느린쿼리로그
__12.2.4InnoDB엔진상태보고서
_12.3조사방법
__12.3.1USE방법
__12.3.2RED방법
_12.4MySQL모니터링도구
_12.5사고/진단및수동데이터수집
__12.5.1시스템상태변수값의주기적수집
__12.5.2pt-stalk를사용한MySQL및OS지표수집
__12.5.3확장된수동데이터수집

Chapter13고가용성
_13.1비동기복제
__13.1.1소스및복제본에설정할기본매개변수
__13.1.2XtraBackup을사용한복제본생성
__13.1.3복제플러그인을사용한복제본생성
__13.1.4mysqldump를사용한복제본생성
__13.1.5mydumper및myloader를사용해복제본생성
__13.1.6그룹복제
_13.2동기복제
__13.2.1Galera/PXC클러스터

Chapter14클라우드MySQL
_14.1Database-as-a-Service(DBaaS)
__14.1.1MySQL/MariaDB용아마존RDS
__14.1.2MySQL용구글클라우드SQL
__14.1.3애저SQL
_14.2아마존오로라
_14.3MySQL클라우드인스턴스
_14.4쿠버네티스에서MySQL사용
__14.4.1쿠버네티스에XtraDB클러스터배포

Chapter15MySQL로드밸런싱
_15.1애플리케이션드라이버를사용한부하분산
_15.2ProxySQL로드밸런서
__15.2.1ProxySQL설치및구성
_15.3HAProxy로드밸런서
_

출판사 서평

데이터베이스설계부터효율적인운영노하우까지넓고깊은MySQL가이드

이책은MySQL을사용자모두를위한가이드북이다.리눅스(우분투,CentOS등)나윈도우,맥같은OS에서원하는MySQL버전을설치하는방법부터실제서버를운영할때알아두면좋은각종프로그램까지소개하며실무적인지식을쌓게한다.초보자라면자세한개념설명과쿼리실습을통해데이터베이스입문에필요한지식을얻을수있고,실무자라면저자가다양한기업을대상으로컨설팅한경험으로부터노하우를전수받을수있다.

대상독자
-MySQL을처음배우는개발자
-MySQL의핵심을폭넓게이해하고실무에활용하고싶은개발자와DBA
-다른데이터베이스시스템을사용하다가MySQL을처음시작하는사람

배우는내용
-MySQL및데이터베이스의개념
-데이터베이스인프라설계방법
-고효율쿼리작성법
-MySQL데이터베이스모니터링및문제해결법

이책의구성
-PartI.MySQL시작
다양한환경에MySQL설치하고설정하는법
-PartII.MySQL사용법:기본탄탄히다지기
데이터베이스기본구조와설계방법
SQL의기본문법과이를활용한실제데이터조회,입력,수정,삭제실습
-PartIII.제품환경의MySQL:실제환경에서MySQL100%활용하는법
실제업무에서중요한트랜잭션과잠금처리방법
데이터의안전을위한백업과복구,서버의최적화방법
-PartIV.기타:MySQL을활용하는고급기술과서버모니터링방법
실시간모니터링과분석으로익히는서버상태체크방법
클라우드환경에서의MySQL활용,로드밸런싱등고급지식학습

이책의특징
-MySQL의기본부터고급주제까지핵심을다루며독자가전체적인이해를얻을수있는통합적가이드
-문제해결과최적화에초점을맞춘실용적인팁과모범사례를소개
-직접입력하며확인하는코드예제
-MySQL8.0버전을중심으로최신기능및변경사항을소개(5.7내용포함)
-클라우드환경의MySQL활용과최신기술트렌드소개