상세정보
미리보기
러닝 MySQL : MySQL 운영 종합 가이드, 데이터베이스 설계부터 비용 최적화까지
- 저자
- 비니시우스 그리파,세르게이 쿠즈미체프 저/김선종 역
- 출판사
- 한빛미디어
- 출판일
- 2023-10-09
- 등록일
- 2023-11-22
- 파일포맷
- PDF
- 파일크기
- 13MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
데이터의 방향키를 잡는 가장 현명한 방법, MySQLMySQL로 데이터베이스를 효과적으로 구성하고 운영하는 방법을 배워봅시다. 이 책은 최신 버전인 MySQL 8.0(MySQL 5.7 정보 포함)을 바탕으로 강력한 RDBMS를 최대한 활용하는 데 필요한 인사이트와 도구를 소개합니다. 또한 데이터베이스를 구성하고 관리하는 모든 이가 MySQL을 쉽게 활용하도록 다양한 실습을 제공합니다.전 세계의 많은 고객과 협업하며 다양한 사용 사례를 경험한 저자들이 개발자와 DBA가 비용을 최소화하고 가용성과 성능을 극대화하는 방법을 안내합니다. 데이터베이스의 기본 개념부터 고급 쿼리 작성, 모니터링, 오류 해결, 데이터베이스 관리 및 보안, 백업 및 복구, 효율성 향상을 위한 튜닝 방법에 이르기까지 MySQL에 관한 모든 것을 만나보세요.
저자소개
퍼코나의 선임 지원 엔지니어이자 오라클 에이스 어소시에이트다. 비니시우스는 컴퓨터 공학 학사 학위를 받고 13년 동안 데이터베이스 관련 일에 종사했다. 기업의 주요 애플리케이션을 위한 데이터베이스를 설계한 경력이 있으며, 수년간 MySQL 및 MongoDB 에코시스템의 전문가로 활약했다. 지원팀에서 근무하면서 다양한 시나리오와 복잡성을 지닌 수백 가지의 다양한 사례로 퍼코나의 고객사를 지원했다. 또 유럽과 아시아, 북미, 남미 등에서 열리는 콘퍼런스에 발표자로 참여하는 등 OS 커뮤니티에서 활발히 활동하고 있다.
목차
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 제품 환경의 MySQLChapter 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 충돌 원인 분석