메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

러닝 MySQL

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

한빛미디어

번역서

판매중

  • 저자 : 비니시우스 그리파 , 세르게이 쿠즈미체프
  • 번역 : 김선종
  • 출간 : 2023-09-29
  • 페이지 : 732 쪽
  • ISBN : 9791169211482
  • 물류코드 :11148
  • 초급 초중급 중급 중고급 고급
4.8점 (26명)
좋아요 : 6

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

 

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

 

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

 

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

비니시우스 그리파 저자

비니시우스 그리파

퍼코나의 선임 지원 엔지니어이자 오라클 에이스 어소시에이트다. 비니시우스는 컴퓨터 공학 학사 학위를 받고 13년 동안 데이터베이스 관련 일에 종사했다. 기업의 주요 애플리케이션을 위한 데이터베이스를 설계한 경력이 있으며, 수년간 MySQL 및 MongoDB 에코시스템의 전문가로 활약했다. 지원팀에서 근무하면서 다양한 시나리오와 복잡성을 지닌 수백 가지의 다양한 사례로 퍼코나의 고객사를 지원했다. 또 유럽과 아시아, 북미, 남미 등에서 열리는 콘퍼런스에 발표자로 참여하는 등 OS 커뮤니티에서 활발히 활동하고 있다.

세르게이 쿠즈미체프 저자

세르게이 쿠즈미체프

퍼코나의 수석 지원 엔지니어다. 기술적인 문제의 해결을 비롯해 데이터베이스 관련 작업, 안정적인 시스템 구축을 즐긴다. 오픈소스 프로젝트에 코드 기여, 버그 보고서 제출 등의 활동을 하며, 블로그에 MySQL과 기타 오픈소스 데이터베이스에 대한 글도 작성한다. 퍼코나에 입사하기 전에는 약 10년 동안 DBA와 DevOps 엔지니어로 근무했다.

김선종 역자

김선종

고등학교 시절 사람과 대화하는 게 어려워 컴퓨터로 일하는 개발자를 직업으로 선택했다. 하지만 기대와는 달리 개발은 많은 소통이 필요한 일이었고, 그 덕에 소통하며 일하는 것이 더 편해졌다. 기술로 세상에 영향을 끼치는 것을 목표로 삼고 현재는 스타트업에서 플러터로 앱 개발을 하고 있다. 최근에는 뇌가 데이터를 저장하는 방식에 관심을 갖고 있다.

 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 충돌 원인 분석

데이터베이스 설계부터 효율적인 운영 노하우까지 넓고 깊은 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 활용과 최신 기술 트렌드 소개 

현재 밥벌어먹고 살고 있는 것 중 하나로 MySQL 입니다.

잘 하느냐~

그저 기본만 사용 하고 있습니다.

혼자서 기획하고 개발하고 다 하니 딱히...

이번 기회에 어떤 기능들이 있는지 어떻게 활용하면 좋을지 알아 보기 위해 <러닝 MySQL>을 신청 하였습니다.

저자분들이 이력이~

이정도면 믿고 볼 수 있는...

새로운 데이터베이스가 많이 나오긴 했지만 기존의 데이터베이스가 쉽게 사라지지 않을거라고 하네요.

저의 생각은 기존의 데이터베이스가 좋아서라기 보다는 그것을 바꾸는게 힘드니까...

그리고 이미 그렇게 개발해온 사람들이 있으니...

새로운 시스템을 만들때는 새로운 데이터베이스를 이용하겠죠?

하지만, 그만큼 기존의 데이터베이스들도 발전을 하고 있습니다.

대상독자는...

지금 사용하시는 분들과 처음 하시는 분? 결국 모두잖아~ ^^;

무엇보다 이 책에서는 설치부터, 설계, 백업, 복구, CPU성능분석, 버그까지...

많은 부분을 다루고 있습니다.

많은 부분을 다루고 있어서 부족하지 않을까 했지만 꼭 그렇지만은 않습니다.

기본서 처럼 두고두고 볼 수 있는 책이 될것 같습니다.

목차는 아래와 같습니다.

책은 그리 두껍지 않은데 600페이지가 넘습니다.

종이가 얇아진 덕분(?)이긴 한데...

약간 보기가 불편할때도 있습니다. 뒷면이 비춰서...

하지만, 아무래도 가볍고 얇은게 좋죠~

대학 교재로 사용한다면 역시나 가벼운게~ ^^;

Previous imageNext image

기본적인 설치 과정입니다.

오픈소스이면서도 배포 패키지의 경우 많은 OS에서 쉽고 빠르게 사용할 수 있도록 잘 되어 있습니다.

물론, 해당 OS를 다룰줄 아는 사람 기준이겠죠? ^^;

간단하게 플랫폼과 버전을 선택하면 내가 원하는 MySQL을 쉽게 설치 할 수 있습니다.

다행히 기본적인 OS 들에 대해서는 어떻게 설치 해야 하는지 설치 과정들이 잘 나와 있습니다.

리눅스에서의 설치~

맥에서의 설치~

윈도우에서의 설치~

MySQL을 설치 하고나면 그래도 사용을 해봐야 하니...

가장 기본적인 SQL 셀입니다.

몇몇 데이터베이스 프로그램을 설치하지 않았다면 사용해야할 부분이겠죠?

도스 혹은 리눅스 명령라인과 비슷합니다.

샌드박스...

새로운걸 알아갑니다.

저의 경우 여러 시스템을 만들면서 이런 부분에 대해서는 사용하지 않았습니다.

규모가 그리 큰게 아니기 때문에 개발 PC가 테스트 환경이고, 서버가 실제 환경이다보니 이런 부분을 필요치 않았기에 알아볼 필요도 없었지만, 이번 기회에 이런것도 있다는걸 알게 되었습니다.

업그레이드 관련 부분도 있습니다.

상당히 겁이나는 작업이기도 하죠.

업그레이드 했는데 동작 안하면 어쩌지?

설정 문제가 생기면 어쩌지?

버전에 따른 기능 여부가 달라서 동작 안하면 어쩌지?

그래서 거의 하지 않았던 부분이죠.

업그레이드를 하기 보다는 서버 교체시 업버전의 MySQL을 설치하고 오픈하기 전까지 테스트를 거쳐 오류 처리하고, 그랬던것 같네요.

데이터베이스 모델링과 설계~

시직하자마자 실패 사례부터 보여줍니다.

데이터베이스의 설계 뿐만 아니라

프로그램 기획 자체도 이와 같죠.

그렇게 각각 세부적으로 나뉘어도 결국 이 설계 과정을 따를겁니다.

저에게는 가장 힘든 요구사항 분석..

어찌 클라이언트들이 하나같이 잘 모르니, 가르쳐주면서 진행을 해야 하니...

객체가 존재하지 않거나 알 수 없는 경우가 많은가? ^^;

"이런이런 일이 일어나나요?"

"아니요~"

나중에 보면 일어난다.

"이런이런 일이 일어나지 않는다면서요~"

"거의 안일어나서..."

"하~"

이런 문제들이 많았습니다.

그래서 이제는 클라이언트들보다 더 많이 생각하고 더 많이 물어보고 더 많은 경우의 수를 생각합니다.

SQL 표준..

어느정도 표준화된 문법이라 다른 데이터베이스도 어느정도 손쉽게 적용할 수 있습니다.

헌데, 생각외로  기능적으로는 안되는 것들도 많더라구요.

저도 최근에 들어서는 약어나 짧은 표현들은 잘 사용 안하려고 하고 있습니다.

처음에 어설프게 배우다보니 업그레이드 되거나 버전업 등이 되었을때 표준을 지키지 않은것들이 오류가 발생하는 경우가 있어서...

대규모로 수정작업을... ㅠㅜ

가장 기본이 되는 SELECT~

다양한 내용을 불러올 수 있죠~ ^^;

늘 사용이 어려운 JOIN~

Inner Join, Outer Join, Left Join, Right Join ...

아~

쉽지 않네요.

뭐 물론 대부분읜 LEFT JOIN 사용이 전부긴 합니다.

SELECT 하기 위해 당연히 데이터가 있어야 겠죠?

INSERT~

등록된 내용에 대해 수정하는 UPDATE~

아~

AUTO_INCREMENT가 MySQL의 기능이였군요.~

MS-SQL 할떄 늘 불편했던...

일일이 SELECT 해서 수량이 몇개인지 확인하고 다음값을 이용했다는...

그런데 이 AUTO_INCREMENT를 만나고 나서는 신세계죠~

어~

CREATE 부분을 빼먹었나? 생성도 안했는데 구조변경이라... ^^;

만들어진 테이블의 구조를 변경하기 위한 명령입니다.

기본적인 쿼리를 벗어나서 좀 더 고급적인 쿼리로 갑니다.

함수를 사용하거나 별칭을 이용해서 동일한걸 여러개 사용하거나, 조인을 하거나...

조인에 대해 비교 설명을 해주고 있습니다.

잘 읽어보면 조인에 대해 앞으로 더 잘 활용할 수 있을 것 같네요.

사용자 변수가 있는 줄 알고 있었지만 쓸일이 없어서 홀라당 까먹었었던 기능...

음...

개발자 입장에서 Lock은 DBA가 해줬으면 하는 분야이죠.

저의 경우는 아직 대규모나 규모가 크다 하더라도 사용자가 한꺼번에 몰리거나 하나의 데이터를 여럿이 건드릴 일이 없어서 딱히 이용할 필요가 없었지만,

규모가 크다라고 한다면 꼭 확인해봐야 할 부분입니다.

(그나저나 구글워드 등의 공유 및 편집 기능은 어떻게 하는거지? 동시에 수정이 가능한데..)

추가 활용법이라기 보다는 추가 기능? 고급기능2?

데이터를 하나하나 어플리케이션 등에서 입력하는게 아닌 텍스트 파일로 대량으로 입력 할 수 있는 방법 입니다.

저의 경우는 CSV 파일 보다는 그냥 쿼리문 작성해서 넣는 편이긴 합니다.

특히나 특수문자들 때문에...

EXPLAIN~

분석하는데 있어서는 상황에 따라 여러 형태를 취할 수 있음으로 자세한 얘기는 안한답니다.

사실, 이 부분만으로도 책 한권 이상이 나올 수 있으니...

그나저나 저도 한번 써먹어봐야겠습니다.

가끔 너무 오래 걸리는 녀석들이 있기도 해서...(물론, 데이터가 많으니.. ^^;)

이 역시 다른 RDBMS와 MySQL이 구별되는 특징이라고 하네요.

다양한 스토리지 엔진을 지원...

그나저나 이게 뭐지?

InnoDB를 사용한건 나도 알지... 그럼 나머지는?

음.. 그래서 책을 읽어야 하나 봅니다.

참..

이 분야도 잘 사용해야 하는데, 혼자서 관리하다보니 썩~ 안써지는 부분이고

처음 배울때도 이 부분에 대해서는 딱히 배우지도 않았고,

무엇보다 처음 배울때 리눅스에서 배우다보니 사용자나 권한 이쪽에 대해 많이 힘들었죠.

아하~

그래서 사용자 및 권한에 대한 설명부터 나옵니다.

사실 윈도우 환경에서 공유 부분을 제외하고는 사용자나 권한 등에 대해 들어본적도 없는게 대부분이죠.

그러기에 더더욱 이해가 안갔던 부분이고...

찬찬히 읽어봅니다.

데이터베이스 답게 권한을 부여 하는 테이블이 별도로 있습니다.

옵션파일~

처음 들어봅니다.

설정파일 정도인것 같네요~

간혹 새로운 버전 사용하면서 기존에 잘되던 것들이 안될떄 한번은 열어봐야 하는 부분입니다.

백업 및 복구

항상 어떤 일에든 대비해야 합니다.

사건, 사고~!!!

지금 저의 경우는 사용하는 데이터베이스의 전체 용량이 그다지 크지 않기에 전체 백업을 하고는 있습니다.

물론, 아직까지 복구를 해본적은 없습니다.

(아~ 초창기 한번 있구나...)

이전에 프로그램 만드신 분이 너무 이상하게 만들어서 데이터에 고유번호가 없는 겁니다.

한번 입력하고 삭제 하려면 레코드를 입력한 수량만큼 삭제를 해야 하는 일이 발생하죠.

그러다 잘못해서 다 날려버린적이... 그떄 정말 가슴이 철렁~

그때 한번 복구 한적이 있기는 합니다.

그 이후로 복구한적이 없지만, 늘 백업을 하고 있음으로 마음의 안정감이 있습니다.

mysqldump 를 통해 데이터베이스를 원하는 형태로 백업할 수 있습니다.

콜드 백업 및 시스템 스냅샷~

그때 그때 필요에 따라서 원하는 형태로 백업을 하면 됩니다.

무조건 이걸로만~ 이럴 필요는 없다는 것이죠.

각각의 백업 형태에 따라 특징들이 있으니 잘 읽어보세요.

강력한 백업 전략~!!

백업이 매우 중요 합니다.

하지만, 데이터가 많거나 한다면 이 백업 작업도 부하가 많이 걸릴 수 있으니 적절히 잘 완벽한 백업에 대한 전략을 세우고 진행 해야 합니다.

서버에 대한 구성과 튜닝까지 다루게 됩니다.

상당히 고급 레벨까지 나오네요.

모니터링을 통해 향후 MySQL 의 튜닝이나 서버 튜닝, 등에 대해 미리 알아 볼 수 있습니다.

저의 경우는 아무래도 쉽지 않은 부분이긴 합니다.

한단계 더 발전하기 위해서는 모니터링을 통해 분석하고 수정해야 하는데 말이죠~

쉽기도 하고 어렵기도 하다라...

그냥 어렵던데~

모니터링의 부분도 소개 하고 있으니 잘 확인해서 적용해보도록 해야겠네요.

mysqladmin에서도 가능하다니..

물론, 최신 버전이겠죠?

전 아직 예전 버전과 최신 버전 둘다 사용하고 있으니 한번 확인해봐야겠습니다.

클라우드에서도 MySQL을 사용할 수 있고 또 어떻게 구성하는지 안내하고 있습니다.

점점 더 규모가 큰것에 적용 가능한것들이 나옵니다.

MySQL 로드밸런싱~

저도 아직까지 데이터서버, 데이터베이스서버 만 분리 해봤지 데이터 서버 조차 로드밸런싱 해본적이 없는데...

데이터베이스 조차 로드밸런싱을 해야 하는 규모라... ^^;

그래도 어떤것인지는 알고 있어야 나중에라도 도움이 되겠죠?

아~

적절한 종료 명령 없이...

음... 내가 늘 중료를 했던가?

안했던것 같은데... 앞으로 종료도 꼬박꼬박(이게 정석이죠... 어디서 대충 배워와서~ ^^;) 종료도 해줘야 겠군요.

그나저나 우주 방사선으로 인해 충돌이 날 수 있다?

뭔 얘기지? 들어가봐야겠네요~ ^^;

MySQL ...

오라클이나 MS-SQL 만큼이나 성능 좋고 유명하고 많이 사용하지만 무료라는...

저 역시 향후 앞으로도 계속 사용할 것 같기는 합니다.

이번 <러닝 MySQL:한빛미디어>의 경우 책꽂이 한쪽에서 늘 저의 손을 기다리는 책이 될 것 같네요.

아니 제가 필요로 하는 책이 될 것 같네요.

MySQL의 기본적인 내용을 다루고 있기에 기본을 파악하고 자세한 내용을 찾아 볼 수 있게 해주는 것 같습니다.

어설프게 배웠던 저에게 많은 다양한 MySQL의 기능을 알려주고 그것을 활용해볼 수 있는 기회를 준것 같습니다.

책의 모든 내용을 다 볼 필요는 없을 것 같지만,

소장해두면 내가 필요로 할때 필요한 내용을 바로 얻을 수 있을 것 같네요.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

개발업무를 진행하다 보면 어느 순간에는 데이터베이스를 사용하게 됩니다. 데이터는 애플리케이션의 핵심이니깐요. 어느 정도 규모를 넘어서 데이터를 관리하는 시스템이 별도로 필요할 때 DBMS, 특히 관계형 DB를 먼저 떠올리게 됩니다.

개인적으로는 클라이언트에서만 사용한다면 SQLite, 서버로 이용될 경우에는 Postgresql이나 MS SQL Server를 선호합니다. 특별한 이유는 없습니다. 예전에 제가 공부할 때에는 mysql은 트랜잭션 지원이나 서브쿼리 등이 PostgreSQL에 비해 부실했기 때문입니다.

하지만 역시 오픈소스의 발전 속도는 참 빠르고 거침없습니다. 어느새 MySQL도 트랜잭션이나 고급 쿼리문에 이어 고가용성까지 지원하고 있고, 대용량 서비스에 활용되고 있다는 소식을 쉽게 접하게 되었습니다. 그래서 이번에 mysql을 중심으로 DB에 관한 지식을 재충전할 목적으로 이 책을 읽었습니다.

 

저는 1부와 2부는 설렁설렁 보았습니다. 이미 다른 DBMS를 많이 다뤄보았었기 때문에, mysql의 특이점만 살펴보면서 읽었습니다. DBMS를 처음 공부하시는 분들은 2부가 가장 중요합니다!!! 2부는 기본적인 데이터베이스 설계 및 SQL에 관한 내용을 담고 있습니다. 꽤 상세하게 단계별로 설명하고 있습니다. 웬만한 SQL 기본서적보다 괜찮다고 생각합니다.(현실적인 DB를 가지고 SQL을 설명하고 있어요.)

 

Learning mySQL.나비책

 

이 책은 크게 4부분으로 나뉩니다.

 

1부는  주로 설치에 관한 내용입니다. 이 부분은 조금 애매하다고 생각됩니다. 클라우드의 시대라 예전처럼 리눅스 패키지 관리자나 소스에서 컴파일하는 경우는 거의 없을 것 같습니다. 이런 아쉬움은  14장 클라우드 MySQL에서 조금 보완이 됩니다만, 정말 조금입니다. DBaaS내용을 다루는 게 20쪽 정도에 불과합니다. 그만큼 클라우드에서 DB 사용이 쉬운 거라고 생각해야 할까요?

 

2부는 관계형 데이터베이스 기본 내용을 익히는 부분입니다.

기본적인 SQL구문을 sakila DB를 가지고 배우게 됩니다. ER Diagram, 데이터 정규화, 기본 SQL의 DDL, DML 구문들을 mySQL 관점에서 배울 수 있습니다. 그리고 제약사항들이나 조인, 중첩 쿼리등을 배울 수 있습니다. 기본적인 내용이지만, 그래도 처음 찍먹하는 개발자들은 도움이 될 것입니다. 상세히 단계별로 다루고 있습니다.

 

3부와 4부는 운영 관점입니다. 실제 서비스 환경에서 mySQL을 사용할 때 만나게 될만한 시나리오들입니다. 3부는 DBA 관점의  이야기들이 많았던 것 같아요. 물론 트랜잭션 이야기도 있긴 한데, 사용자/권한 관리나 백업 복구, 서버 튜닝에 관한 내용이 담겨 있었어요.

 

4부는 개인적으로 이 책에서 재미있게 읽은 부분입니다.  mySQL을 사용하여 고가용성을 확보하기 위한 여러 가지 방법을 소개를 하고 있습니다. 3부는 DBA관점이라면 4부는 솔루션 아키텍처 관점에서 mySQL 관련 내용을 설명하고 있습니다. 

 

4부 로드밸런싱과 K8S환경의 클러스터링

 

이 책은 관계형 DBMS를 처음 접하시거나 MySQL전체 기능을 훑어보고 싶은 분들에게 좋은 All-In-One 서적이라 생각합니다. 수준으로 보면 초급 도서라 생각됩니다.

 

 

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

'러닝 MySQL'은 MySQL 데이터베이스 관리와 활용에 대한 포괄적인 지침서로, 데이터베이스 업무를 수행하는 모든 경험 수준의 개발자, 데이터베이스 관리자, 및 데이터 전문가를 위한 필독서입니다. 이 책은 최신 MySQL 8.0 버전을 기반으로 제공되며, 데이터베이스 설계, 운영, 성능 튜닝, 백업 및 복구, 보안, 클라우드 환경에서의 MySQL 활용, 로드 밸런싱, 모니터링, 그리고 기타 고급 주제에 관한 폭넓은 내용을 다루고 있습니다.

첫 번째 부분에서는 MySQL 시작과정을 안내하며, MySQL의 다양한 버전 및 설치 방법에 대한 이해를 제공합니다. MySQL을 어떤 플랫폼에서 사용할 것인지 선택하고, 해당 플랫폼에 MySQL을 설치하고 설정하는 방법을 상세히 다룹니다.

두 번째 부분에서는 데이터베이스 디자인과 SQL 기초를 다룹니다. 데이터베이스 개발 과정, 관계형 엔티티 모델링, 데이터베이스 정규화와 같이 중요한 개념을 이해하고 SQL 쿼리 작성 기술을 연마할 수 있습니다.

세 번째 부분에서는 MySQL을 사용하여 데이터베이스를 구성하고 관리하는 방법을 다룹니다. 데이터베이스와 테이블 생성, 데이터 수정 및 구조 변경, 그리고 테이블 간 업데이트와 삭제 작업과 같은 일상적인 데이터베이스 작업을 수행하는 방법을 상세하게 설명합니다.

네 번째 부분에서는 고급 SQL 기술을 배울 수 있으며, 별칭, 데이터 집계, 고급 조인, 중첩 쿼리, 사용자 변수와 같은 고급 쿼리 작성 기술을 탐구합니다.

다섯 번째 부분에서는 트랜잭션, 잠금, 그리고 격리 수준과 관련된 MySQL의 매개변수에 대한 이해를 높이고, 데이터베이스의 일관성과 격리 수준을 관리하는 방법을 배울 수 있습니다.

여섯 번째 부분에서는 데이터베이스 활용의 다양한 측면을 다루며, 데이터 입력, 데이터 로드, 테이블 생성, 다중 테이블에서의 업데이트 및 삭제와 같은 실용적인 주제를 다룹니다.

일곱 번째 부분에서는 MySQL 사용자 및 권한 관리, 권한 부여, 사용자 생성 및 수정, 그리고 보안 설정에 대한 내용을 포함하여 데이터베이스 보안을 강화하는 방법을 상세히 설명합니다.

여덟 번째 부분에서는 MySQL의 옵션 파일을 사용하는 방법을 배우고, 옵션 파일의 구조, 유효한 옵션 결정, 그리고 MySQL 서버 설정을 개별적으로 커스터마이징하는 방법을 익힐 수 있습니다.

아홉 번째 부분에서는 데이터베이스 백업 및 복구에 초점을 맞추어, 논리적 백업과 물리적 백업, 백업 도구를 활용한 데이터의 안전한 보호 방법을 소개합니다.

열 번째 부분에서는 MySQL 서버 구성과 성능 튜닝을 다루며, MySQL 서버 변수 및 설정의 최적화, 성능 향상을 위한 모범 사례와 도구를 학습할 수 있습니다.

마지막 부분에서는 MySQL 서버의 모니터링, 고가용성 설정, 클라우드 환경에서의 MySQL 활용, MySQL 로드 밸런싱, MySQL 셸과 Flame 그래프, MySQL 빌드, 그리고 데이터베이스 충돌 원인 분석과 같은 고급 주제를 다룹니다.

이 책은 데이터베이스를 다루는데 필요한 모든 측면을 포괄적으로 다루고 있어, MySQL을 처음 배우는 초보자부터 전문가 수준의 데이터베이스 관리자까지 모두에게 권장하는 리소스로서 유용합니다. 데이터베이스의 핵심을 이해하고 데이터베이스를 효과적으로 활용하고 최적화하는 방법을 배우고 싶은 분들에게 '러닝 MySQL'은 가장 현명한 선택 중 하나입니다.

 

간만에 MySQL 8.0 기본서를 볼 기회가 생겼다.
현재 주력으로 5.7버전을 사용중인데, 해당 버전 이상에서 제공하는 특별한 기능들을 활용할 일이 별로 없기에 그냥 유지중이었다.
다만 새로 시작하는 프로젝트에서 기존 버전에서는 지원하지 않거나 너 효율적으로 처리할 수 있는 기능들을 써보기 위해 도입하려던 중에 이 책의 서평을 진행하게 되어서 겸사겸사 사용해보려 한다.

여느 기본서들과 마찬가지로 이 책도 기본적인 설명, 설치방법, 사용방법, 추가 팁들 과 같은 구성으로 이루어져 있다.

예전에 나온 책들은 주로 물리 서버나 로컬에 설치하는 경우를 설명하고 실습을 진행했는데, 확실히 요새는 클라우드 환경이 보편화 되다보니 리눅스 배포판별 설치 뿐 아니라 OSX, 도커 환경의 세팅 방법까지 다루고 있어서 놀랐다. (MySQL 기본서를 정말 오랜만에 보는...)

 

SQL문의 DDL, DML, DCL에 대해 상세하게 설명이 되어있고, 프로덕션 환경에서 유용하게 사용되는 트랜젝션 팁들, 여러 대체 스토리지 엔진들에 대한 설명을 볼 수 있다.

 

사용자 권한 관리에 대한 부분도 50여 페이지를 할당하여 설명하고 있는데, 단독으로 사용하는 DB가 아닌 이상 각 계정에 부여된 권한 설정이 크리티컬한 보안 사고를 일으킬 수 있기에 정말 주의해야하는 부분인데, 잘 숙지해두면 새로운 계정을 생성하고 권한을 부여할 때 좀더 안전하게 설정할 수 있을 것 같다.

MySQL 서버의 옵션의 구성과 기본적인 세팅에 관해서도 다루고 있으며, DB운영 시 가장 중요한 백업과 복구에 대한 설명도 충분히 잘 되어있다. 다양한 백업/복구의 방법들과 툴들을 설명하고 있다.

 

서버를 구성 시 서버 설정의 모범사례를 제공하고 있다. 물론 이 책에서 안내하는 설정이 정답도 아니고, 운영하는 환경이나 목적에 따라 모두를 다 만족시킬 수 있는 절대적인 것도 아니지만 아직 운영 경험이 없거나 익숙하지 않은 신규 사용자들에게는 정말 도움되는 섹션인 것 같다.

 

또한 백업과 복구와 마찬가지로 정말 중요한 모니터링에 관한 내용도 비중 있게 다루고 있다.
모니터링 할 각종 지표에 대해 설명하고 있으며, 모니터링 도구, 사고/진단과 그에 대한 자료 수집 등의 내용을 알아볼 수 있다.

고가용성과 로드밸런싱에 관한 내용, 클라우드 상에서의 MySQL 운영 등에 대한 내용등도 다양하게 다루고 있어서 전체적인 설치, 운영 및 사용에 대한 내용들을 한번에 배울 수 있는 책이다.

 

MySQL을 이미 잘 활용하고 있던 사용자들일지라도 꾸준히 공부하지 않았다면 알지 못했을 새로운 내용들을 얻을 수 있을 것이고, 처음 공부를 시작하려는 입문자에게는 더 없이 도움되는 참고서가 될 것 같다.

 

[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

믿고 보는 oreilly의 러닝 시리즈!

 

이 책은 Mysql의 설치, 설계, 백업, 복구, 성능 분석, 버그 디버깅까지 다룹니다.

 

각각의 챕터들은 실제 쿼리들과 실행 가능한 예제들로 되어 있어서 이해하기 편했습니다. 

 

엄청 깊게 들어가진 않지만 MyISAM과 Aria 등과 같은 예전 내용도 간단히 설명합니다. 저는 이런게 있다는 것만 들었지 왜 안 쓰는지는 잘 모르고 InnoDB가 최신버전이라고만 알고 있었는데 간단하게 배경 지식을 쌓을 수 있어서 좋았습니다.

 

[추천 대상]

기초적인 설계나 설치법도 운영체제별로 알려주기 때문에 데이터베이스에 입문하는 사람도 무리 없이 배우며 읽을 수 있습니다.

학교 수업부터 시작해서 프로젝트까지 Mysql을 많이 쓰고 다른 DB를 보더라도 Mysql 방식이랑 비교를 항상 할 정도로 흔히게 접할 수 있습니다. 관심이 생긴 분은 러닝 Mysql로 가볍게 DB에 입문하기 좋을 것 같습니다.

MySQL은 상업용 제품인 Oracle DB 다음으로 DBMS 사용률 2위에 랭크되어 있고, 오픈 소스 생태계로 국한하자면 1위의 자리를 차지하고 있는 RDBMS이다. MySQL은 그만큼 넓은 저변을 갖추고 있고, 오랫동안 그리고 지금까지 널리 사용되고 있는 명실상부한 DBMS이다. 한때, MySQL의 포크 버전인 MariaDB가 탄생하는 과정에서 여러 논쟁에 휘말리다가 부침을 겪기도 했지만 MySQL의 위용은 아직까지 건재하고 계속해서 발전과 성장을 거듭하고 있는 중이다. MySQL은 Oralce DB 못지않게 안정적이며 탁월한 성능을 자랑하고 있으며, 지속적으로 기능이 추가되고 끊임없이 성능이 향상되고 있기 때문에 오픈 소스 생태계의 RDBMS 왕좌 자리를 쉽게 내줄 것 같지는 않아 보인다. 이런 MySQL의 모습 때문에 앞으로 MySQL의 미래가 어떻게 전개될지 자못 궁금하기만 하다. 

 

KakaoTalk_20231029_233713064.jpg

 

오늘 소개하는 책은 MySQL의 기초부터 고급 영역까지 아우르는 방대한 양을 자랑하는 서적이다. 해당 도서는  MySQL의 최신 버전인 8.0을 기본적으로 다루고 있고, 다양한 OS 환경에서 MySQL을 설치하는 걸로 책의 첫 장을 시작한다. 또한 단순히  MySQL뿐만 아니라 포크 버전인 Percona Server, MariaDB 그리고 Linux, Windows, MacOS, Docker 환경에서의 MySQL 설치 등 다양한 플랫폼에서의 설치를 상세하게 다루면서 독자의 MySQL를 향한 여정을 안내한다. 

 

무엇보다 MySQL을 위한 서적이라고 해서 MySQL과 관련된 주제만 취급하는 데 그치지 않고, 데이터베이스 모델링 및 설계와 관련된 부분을 세밀하고 친절하게 설명한다. 이윽고 기본적인 SQL을 위시해서 데이터베이스 구성과 연관된 작업 및 고급 쿼리에 이어 트랜잭션과 Lock 등에 대해 다루고, 데이터 입력 및 로드, 기타 MySQL에서 활용 가능한 다양한 주제를 충실하게 이어 나간다.

 

DBMS 운영에 있어서 사용자 관리도 정말 중요한 영역인데, 이에 대한 논의도 서슴없이 전개되며 백업 및 복구와 관련된 주제에서는 정말 실무에 충분히 유용하고 도움될 만한 다양한 팁과 기술을 학습할 수 있게 된다. 마지막 파트에서 MySQL에 대한 모니터링에 대해서도 심도 깊게 다뤄지는데, 모니터링 역시 정말 중요한 부분이라서 DBMS를 실제 운영하고 관리하는 이에게 실질적인 도움을 줄 수 있는 여러 가지 내용이 언급된다. 이어서 고가용성 및 클라우드에서의 환경에서의 MySQL, 로드 밸런싱 등에 대한 내용을 끝으로 책은 마무리된다. 

 

MySQL와 관려된 서적이 국내에 그렇게 많지 않은 상황에서, 이 책은 단 한 권으로 MySQL의  A부터 Z까지 모든 것을 포괄하고 다루는 도서다. MySQL의 설치부터 기초 그리고 고급 주제까지 아우르는 서적은 이 책이 유일할 것이다. MySQL을 통해 DBMS에 입문하려는 초심자, 보다 깊게 MySQL을 이해하고 싶은 사람, 그리고 MySQL를 활용하여 DBMS를 운영 및 관리하고 있는 사람 등 모든 이에게 이 책을 강력히 추천한다. 

 

P.S 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

'오라일리-한빛미디어'에서 신상이 출간되었다. 이름은 <러닝 MySQL>이다. 데이터베이스를 처음 접하는 사람이 볼 수 있는 입문서이다. 그렇다고 초급자만 보는 책은 당연히 아니고, 중급 내용까지 모두 다룬다.

 

러닝 MySQL 은 크게 4가지 파트로 되어 있다.

 

파트1 : MySQL 시작

파트2 : MySQL 사용법

파트3 : 제품 환경의 MySQL

파트4 : 기타(서버 모니터링, 클라우드, 로드 밸런싱 등)

 

파트1,2는 초급, 파트 3,4는 중급으로 넘어가는 내용이다. 취준생은 파트2까지 무조건 봐야할 것 같고, 그 뒤부터는 깊이 들어가는 내용이라 필요에 따라 선택해 보면 될 것 같다. 현직 개발자라도 제품 환경의 mysql을 다루는 사람은 드물테니까~

 

<러닝 MySQL>을 입문서라고 하는 이유는 mysql을 설치하는 방법부터 매우 꼼꼼히 알려주기 때문이다.(그것도 OS별로 다 알려줌) 파트2로 가서 관계형 데이터베이스의 중요한 개념들, 그리고 DB를 모델링하고 설계하는 기초를 설명한다. 또한 기초 쿼리부터 고급쿼리까지 배울 수 있다.

 

파트2 안에 챕터2 '데이터베이스 모델링과 설계'에는 엔티티를 어떻게 표현하고 관계 설정을 하는지, 그리고 테이블 정규화 방법이 자세히 나온다. 개인적으로는 책에서 가장 중요한 부분이 아닐까 싶다. 설계라는 건 어느 분야에서나 가장 핵심적인 것이고, 이건 데이터베이스에서도 마찬가지이기 때문이다.

 

그러므로 <러닝 MySQL> 책에서 챕터2는 완벽하게 이해하고 넘어가야 하는 장이다. 이해가 안되면 이해가 될 때까지 봐야한다.^^;; (좋은 설계를 하고 싶다면 반드시!!) 여기서 더 깊이있는 이해를 원하는 사람은 '객체지향'에 대한 학습을 병행하면 큰 도움이 된다.

 

이제 서평을 마무리하면서 책에 대한 한 줄 요약을 해보겠다. <러닝 MySQL>은 mysql을 시작하는 사람에게 최고의 책이며, 중급자에게는 훌륭한 레퍼런스다. 관계형 데이터베이스를 학습하고자 한다면 다른 책이나 영상 강의는 필요없을 것 같다. 오라일리-한빛미디어의 '러닝 MySQL'이 끝판왕이다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

10여년 전에는 대다수의 시스템에서 오라클 데이터베이스를 사용했었는데요, 최근에는 Postgres, MySQL, MongoDB, MariDB 등 다양한 데이터베이스들을 활용하는 것을 보실 수 있습니다. 서평을 쓰고 있는 저도 실무에서 Postgres 를 활용하여 개발을 하고 있답니다.

 

이왕이면 제가 활용하고 있는 Postgre DB 관련 서적이었으면 더 좋았겠지만 sql 문을 씀에 있어서는 그 궤를 함께 하고 있으며, 특정 문법 외에 공통된 내용을 많이 담고 있음에 위안 삼으며 책을 읽어 보았습니다.

 

이 책은 700페이지를 넘는 기술서적이니만큼  MySQL을 처음 시작하는 분부터 실무에서 어느정도 제대로 sql을 활용하고 싶으신 개발자 분들까지 두루 활용할 수 있도록 구성되어 있습니다. 가장 기본적인 MySQL 설치부터 기본 문법, 데이터베이스 설계와 쿼리문 작성 실무 활용 및 운영까지 담고 있습니다. 

 

이 책을 읽으면서 좋았던 부분은 단순히 쿼리를 작성하고, 디비를 활용/사용하는 법만 알려주는 것이 아니라 에제를 들어 활용법을 연습하고 이해하기 쉽게 설명해주고 있으며, 더 나아가 데이터베이스 모델링과 설계까지의 내용도 함께 담고 있어, MySQL을 제대로 배우고자 하는 분들의 지침서가 되기에 모자람이 없는 책이라 생각됩니다.

 

아! 그리고 기본이지만 필수적인 내용을 담고 있을 뿐만 아니라 저 같은 게린이에게 필요한 고급 쿼리 활용 방법, 백업 및 복구, 서버 모니터링 등과 같이 실무에서 활용할 수 있는 꿀팁도 함께 담고 있는 건 안비밀입니다 :) 

 

이제 개발이라는 영역에 발을 들여놓은지 9개월차가 되어가는 개린이인지라 부족한 부분이 많았는데, 이 책을 읽으면서 SQL 에 대해 조금 더 이해하고, 공부할 수 있는 기회가 되었던 것 같습니다. 뿐만 아니라 옆에 끼고 수시로 찾아보고, 참고할 수 있는 지침서가 하나 생긴 것 같아 든든하기까지 합니다^^

 

솔직히 책 분량도 너무 많고, 이미 설치하여 활용하고 있는 상황이라 모든 내용을 다 드려다보지는 못하고 챕터를 뒤져보며 빠르게 훑어내려간 상황이지만, 눈 앞에 마주한 페이지에서는 정말 만족도 높은 컨텐츠를 마주할 수 있었기에 앞으로 실무를 진행하면서 참고할 때 더 많은 기대가 되는 책입니다.

 

아직은 셀렉 위주로 데이터베이스를 활용하고 있는 개린이이기에 업데이트와 딜리트 문 등 평소 운영환경에서 함부로 실습(?)할 수 없어 살 떨려하던 SQL 문 또한 다시 한 번 배우고, 맛 볼 수 있어 특히나 좋았던 것 같습니다. 조금 더 나아가 아직 접해보지 못한 백업/복구 및 서버 구성/모니터링에 대해서도 배울 수 있으니 초급부터 중급까지를 모두 아우를 수 있는 기술 서적이라 판단됩니다.  

SQL에 대해 궁금하고, 공부하고 싶으신 분이라면 강추드립니다. 특히, 무료로 활용할 수 있는 메리트로 많은 분들이 MySQL를 처음 활용하시는 케이스가 많은 것으로 알고 있는데요. MySQL를 써보고 싶거나 초급에서 중급으로 실력을 업그레이드 하고 싶으신 분이라면 이 책과 함께 해보셔도 좋지 않을까 싶습니다^^

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

 

 

러닝 MySQL은 MySQL을 처음 배우는 사람이나, 다른 데이터베이스를 사용하다 MySQL로 변경되어 공부하려는 사람들에게 추천하는 도서이다. 

이 책은 총 4부로 이루어져있다.

 

  1. MySQL 시작
    리눅스, 윈도우, 맥OS, 도커에서 MySQL을 설치하고 설정하는 방법을 설명한다.
  2. MySQL 사용법
    사용법에서는 데이터베이스 모델링과 설계, CRUD와 같은 쿼리 작성 방법, 테이블, 인덱스를 생성하고 수정하는 방법을 설명한다.
  3. 제품 환경의 MySQL
    제품 환경에서는 데이터베이스의 꽃이라고 볼 수 있는 트랜잭션에 대해 다루고, 사용자 및 권한 관리, 백업 및 복구와 서버 구성 및 튜닝에 대해 설명한다.
  4. 기타
    마지막 부에서는 MySQL 서버 모니터링 방법과 로드 밸런싱 방법에 대해 설명한다.

 

오라일리 도서는 역시 믿을만하였다.

 

안녕하세요 

이번에 한빛미디어에서 MySQL에 대해서 배울 수 있는 새로운 책이 나와서

서평을 작성해 봅니다.

 

이 책의 대상 독자는 MySQL을 처음 사용하는 사람과 데이터베이스로 MySQL을 시작하려는 사람입니다.

책의 두께만 보고 처음 DB에 대해서 공부하려는 사람에게 적합할까 싶었는데

책의 내용을 보니 처음 공부를 해도 적합하다고 생각이 들었습니다.

책의 목차를 보시면 아시겠지만

정말 처음부터 다 알려줍니다. 설치부터 해서 쿼리, 데이터베이스 설계, 고급 쿼리 트랜잭션 및 잠금 그리고 운영환경에서 알면 좋은 것들도 다 알려줍니다.

 

책의 설치 방법을 하나하나 다 알려줍니다.

각 운영체제별로 어떻게 설치해야 되는 지도 알려주고 명령어도 다 알려줍니다.

 

저는 MySQL 관련한 내용만 있을 줄 알았는데

데이터베이스 모델링과 설계에 대한 내용도 있었습니다.

2장에서 친절히 알려줍니다.

일대일, 다대다, 다대일 관계부터 해서 데이터베이스 정규화까지 하나하나씩 다 알려줍니다.

기본 SQL도 알려줍니다.

SELECT 문, UPDATE, INSERT, DELETE까지도 다 알려줘서

기본 SQL을 배우기에도 적합하다고 생각이 드네요

 

기본 쿼리를 배웠으면 고급 쿼리에 대해서도 알려줍니다.

CS 면접 준비하면서 빠질 수 없는 트랜잭션 및 잠금에 대해서도 다 알려줍니다. 격리 수준, 해당 격리 수준에서 발생할 수 있는 문제점들까지도요, 그리고 격리 수준에서 발생할 수 있는 문제점들에 대해서

쿼리 결과들을 보여주면서 설명합니다.

 

책에 굉장히 많은 내용들이 있습니다. 

서버 구성 및 튜닝에 대해서도 있고 MySQL 서버 모니터링, 고가용성, 클라우드 환경하에서 MySQL, 로드밸런싱 등등 고급 주제에 대해서도 다 배울 수 있습니다.

 

기존에 다른 데이터베이스를 쓰다가 MySQL를 배워보려는 분

 

아예 데이터베이스를 처음 배워보려는 분

 

MySQL의 심화 과정에 대해서 배우고 싶으신 분들 모두에게 좋은 책이라고 생각이 듭니다. 

 

처음 배워보려는 분들은 전반부를 먼저 읽고 익숙해지고 실무 경험을 해보다가 후반부가 필요할 때 다시 읽어보는 걸 추천드리고

이미 MySQL에 대해서 많이 아시는 분들은 후반부의 고급 주제만 봐도 좋을 것 같네요!

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

> 진행에 앞서

프로그래밍에 연관된 직업을 가진 사람이라면 SQL은 뗄레야 뗄 수 없는 분야이다.

이것은 비단 프론트엔드나 모바일 개발자라 해도 마찬가지이다.

SQL에 대해 조금의 지식도 없거나 설계를 단 한번도 해보지 않았다면 언젠가는 장벽이 존재한다는 말이기도 하다.

(물론 시스템프로그래머나 일부 특수직군은 예외이나, 그정도는 어느 분야든 존재하는 예외 정도의 비율이라고 해두자)

 

그 중에서도 단연코 MySQL은 네임드 중 네임드이다.

사실 산업직군에서 많이 사용하는 것은 Oracle이 맞다. 하지만 그런 사람이라 할 지라도 MySQL은 접해보지 않을 수 없는 것이 애초에 Oracle은 개인 사용자를 위한 것도 아니기에 개발 공부하면서 접해봤을 SQL은 MySQL이 대중적이라고 보여지기 때문이다.


물론 현재는 MySQL마저 Oracle이 인수하면서 인기가 시들어가는 중이라는 생각이 들지만, 그에 따른 대안이 후신인 MariaDB라는 것을 생각해보면 MySQL은 그 영향력을 무시할 수 없다는 생각이 지배적이다.


그래서 MySQL에 대한 이 책이 더 기대가 되었다.

 

> 책에 대한 간단한 정보

앞표지

이 책은 오라일리에서 출간한 원서를 번역한 책이다. 오라일리의 책은 항상 기대를 저버리지 않기 때문에 더 기대가 되었다. MySQL과 저 푸른점박이까마귀나비는 어떤 연관이 있는지는 모르겠지만 묘한 매칭이 되어 신기하였다. MySQL을 대표하는 돌고래 심볼도 푸른색 기반이고, 이 나비도 그러했기 때문이 아닌가 하고 생각해봤다.


뒷표지

뒷표지에는 다소 아쉬운 점이 이 책의 장점을 제대로 살리지 못했다고 느껴진다. 그냥 MySQL의 대강 여러 부분을 이야기 하고 있다고 표현한 듯 보이지만, 이 책은 MySQL의 모든 부분을 아우르고 있다는 사실을 이 내용만으로 알기 어렵기 때문이다.



> 인상깊은 부분들

각종 에디션에 대한 설명이 눈에 띄었는데, 이제껏 MySQL은 유료이며 무료를 위해서는 MariaDB 밖에 없다고 생각했기 때문이다. 하지만 이런 배포판에 대한 설명으로 다양한 포크 버전이 존재한다는 사실을 알게 되었으며, 각 특징도 알게 되었다. MySQL이 유료화 되었다 할지라도 여전히 다양한 방법으로 무료로 사용할 수 있는 방법 또한 존재한다는 것은 이전의 매력이 사라지지 않았음을 의미한다.


ER 다이어그램 기호

ER(Entity Relationship) 다이어그램은 데이터베이스를 설계하기 앞서 꼭 필요한 과정이다. 다만 매번 그리지 않는다면 이에 대한 지식은 채우기 어려울 수 있는데, 그에 대해 쉽게 요약한 이 기호표를 보며 깜짝 놀랐다. 각 요소를 어떻게 표현할지 한 눈에 보이기 때문이다. 언제라도 필요한 사람은 이런 것을 하나만 외워두자.


ACID

트랜잭션이 보장되어야 하는 요소에 대해 이야기 하는 서두이다. ACID는 Atomic, Consistent, Isolated, Durable에 대한 앞글자를 딴 약어이며, 이것을 보장할 수 있는 구조로 작동되어야 한다는 것이다. 어떤 데이터 처리는 서로 다른 프로세스에서 동시 접근할 경우 문제될 수 있기 때문에, 트랜잭션의 단위에 맞춰 데이터 설계 및 처리도 그에 따라 해야 한다는 것이다.


메모리 사용에 대한 모니터링

잘 알 수 있는 부분이기도 하겠지만, 그래도 어느정도 DB를 다루다보면 처리량이 많을 경우 효율성을 생각하지 않을 수 없기 때문에 꼭 필요한 프로파일의 한 단계로서 모니터링에 대한 한 부분이다. 메모리가 부족하면 결국 호스트 머신에 영향을 줄 수 밖에 없고, 그렇게 되면 시스템이 중단될 수 있기 때문에 중요하다. 일단 진단을 해야 개선할 수 있으므로 이러한 지식도 챙겨야 한다.


로드밸런싱에 대한 한 방법

ProxySQL 로드 밸런서에 대한 설명이다. 앞서 측정했던 결과로 SQL에 대한 부하가 예상된다면, 로드밸런스로 해결하는 편이 좋다. 그렇게 하기 위한 방법까지도 제시하고 있다. 물론 상세하게 파악을 위해서는 다른 자료를 참고해야 할 수도 있으나 개념을 파악하기에는 매우 친절하다. 특히 클라이언트 애플리케이션이 SQL에 접근하기 위해서는 어떤 구조로 접근해야 하는지 그림으로 잘 설명되어 있기 때문에 도움이 되었다.


백업 방법

데이터베이스는 물리적인 머신에 종속되어 있다. 이 말인즉슨 물리적인 머신에 의해 언제든 데이터가 유실될 수 있음을 의미하기도 한다. 그래서 백업과 복구는 중요한 섹션인데, 이러한 부분도 알 수 있다. 이 부분은 XtraBackup을 이용하여 백업을 할 수 있음을 알 수 있고, 그 백업도 단순 풀 백업이 아닌 증분 백업이 가능하다는 내용이다. 이정도까지 파악했다면 SQL을 운용하기에 어느정도의 지식은 갖춰진 상태라고 생각한다.



> 괜찮은 부분

1. 설치부터 아주 상세히 알려준다.

MySQL을 비롯하여 이런 시스템을 학습하는데 의외의 난관은 바로 설치할 때부터 예상치못한 어려움에 부딪히기 쉽다는 것이다. 그래서 일반 책에서는 설치에 대한 부분을 가볍게 다루고 넘어가는데, 잘 된다면 당연히 문제가 없지만 만약 문제가 생긴다면 시작부터 극심한 스트레스에 맞닥뜨리게 된다. 이런 부분을 염두에 두었는지 무려 100페이지나 할애하며 다양한 플랫폼에 대응하여 설명하고 있다. 이런 부분이 매우 세심한 설명이라고 생각된다.


2. 한 권으로 A부터 Z까지 마스터할 수 있도록 광범위하게 다루고 있다.

SQL을 학습하기위해 필요한 세부 분야는 다양하다. SQL의 설치, 데이터베이스의 모델링과 설계, 쿼리(DML, DDL, DCL) 작성방법, 사용자 권한 부여 및 제거, 백업 및 복구, 서버 튜닝, 모니터링, 로드밸런싱 등 SQL에 대해서 이름만 들어본 사람이 하나의 서비스를 운영하기까지 필요한 범위의 지식에 대해 폭 넓게 다루고 있기 때문에 모두에게 도움이 된다고 볼 수 있다.


3. 다양한 다이어그램 및 캡처를 활용하였다.

글로만 설명하면 이해하기 어려운 부분들이 있다. 단지 설치 페이지가 아니더라도, 각 실행 결과나 ER 다이어그램, 조인시 테이블간의 관계에 대한 부분들이 그것이다. 그러한 부분을 캡처 혹은 도표로 잘 표현했기 때문에 이해가 쉽게된 부분들이 있다. 책의 두께가 다소 두꺼운만큼 포기할 수도 있었을텐데, 독자를 배려한 부분이라는 생각이 들어서 마음에 들었다.

 

> 아쉬운 부분

1. 섹션별 구분이 잘 되어있지 않아 찾아보기 쉽지 않다.

다양한 주제를 다루고 있는 책인 만큼 원하는 섹션을 찾아 볼 경우가 많다. 하지만 이 책은 겉으로 볼 때 해당 부분이 어떻게 나누어져 있는지 어디에 있는지 찾기가 쉽지 않다. 그래서 눈에 띄도록 챕터 혹은 파트별 구분 페이지 표시를 잘 해 놓았다면 좀 더 쉽게 찾을 것 같다는 생각이 들었다. 이 책이 특히 바이블과 같은 두께와 내용을 갖고 있기 때문에 더욱 기대했던 부분인데 그 부분을 채워주지 못하고 있다는 생각이 들었다.


2. 전체적으로 1도 인쇄라 쉽게 눈에 띄지 않는다.

첫 번째 항목과 유사한듯 한 부분이기도 한데, 섹션별 구분이야 색상이 필수라고 생각한 부분은 아니었지만, 그래도 전반적으로 2도 인쇄 정도는 되었으면 하는 아쉬움은 있다. 책을 보다보면 중간 중간마다 강조하고 싶은 포인트가 있다고 생각이 드는데, 그런 부분이 잘 눈에 띄지가 않는다. 원서 저작권을 비롯하여 책 두께도 있는지라 인쇄 가격이 올라갈 것을 염려한 결정이 아닌가 하는 생각이 들었지만, 책이 두고 읽기에 좋은 만큼 이 책은 그 가치 지불을 하고 구입하는 사람이 있을 것으로 보이기 때문에, 해당 부분으로 인해 가격이 올라간다 하더라도 좀 더 항목별, 강조 포인트별로 눈에 띄도록 2도 인쇄라도 도입했더라면 좋지 않았을까 생각이 들었다.

 

> 추천 독자

- 개발자

- MySQL을 직접 다루고 있는 실무자

- 전산학 전공 학생

 

> 개인적인 평점

- 가격: 7 / 10

- 내용: 10 / 10

- 디자인: 8 / 10

- 구성: 8 / 10

 

> 정보

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

옮긴이: 김선종

출판사: 한빛미디어

가격: 43,000원

전체 페이지: 731페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

서버를 설치하고 질의를 하는 기초적인 방법 부터

실무에서 정말정말 중요한 백업 및 복구/튜닝/모니터링 등 폭 넓은 지식을 다루고 있다.

때문에 입문자가 처음부터 이 책을 읽어도 나쁘지 않겠다란 생각을 했다.

(원래도 자주 사용하던 분들은 군데군데 스킵하면서 읽어도 좋을듯!)

MySQL이 사용되는 다양한 부분을 자세한 코드로 보여주기 때문에 따라하기도 편했다.

실무를 하다가 운영 db를 실수로 날려버리고 손발 줄줄한 경험,

튜닝에 대한 요구를 많이 받아본 중니어들....에게 후반부 내용은 정말 도움이 많이 될 것 같다!

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

111.jpeg

 

10년 전만 해도 많은 시스템들이 오라클을 사용했었는데, 요새 Postgres, MySQL, MongoDB 등 다양한 데이터베이스들을 사용하고 있습니다.

 

NoSQL이 등장을 했지만, 시스템에 따라서 아직 RDS가 주류를 이루고 있으며, 

AWS로 시스템을 구성하면 Auroa로 DB도 버튼 한번이면 구성할 수 있게 되었습니다.

 

다양한 DBMS 중에서도 MySQL을 많이 사용하고 있는데, 배우고 싶으신 분들이라면 아래 후기가 도움이 되었으면 합니다. 

 

우선 이 책은 MySQL을 처음 시작하는 분들부터 실무에서 사용하고 싶은 개발자 분들에게 필요한 내용을 배울 수 있도록 구성되어 있습니다. 가장 기본인 설치부터 기본 문법, 데이터베이스 설계와 쿼리작성 그리고 운영까지 담은 만큼 책의 분량도 730여페이지 정도가 됩니다. 

 

그리고 최신 버전인 MySQL 8.0을 기반으로 작성되었고, 아직 현업에서 많이 쓰고 있는 5.7버전의 정보도 포함하고 있어 이 책으로 배우기에 부족함이 없는 것 같습니다.  

 

* 장점

  1. 단순 쿼리 및 사용방법이 아닌 데이터베이스 모델링과 설계 내용도 담고 있어, 처음 배우는 분들에게 많은 도움이 됩니다. 
  2. 기본 문법 뿐만 아니라 MySQL의 고급 쿼리 그리고 백업 및 복구, 서버 모니터링, 클라우드까지 많은 내용을 담고 있어 전반적인 지식을 배울 수 있습니다. 
  3. 책의 분량만큼 예제 또한 많습니다. 

     

프론트엔드 개발을 하다보니 데이터베이스 분야가 부족한 것 같아 이번 기회에 러닝 MySQL을 읽어 보았습니다. 책 분량이 많다보니 아직 다 읽지는 못했지만, 입문자들도 이 책 한권으로 처음부터 중급까지의 실력을 향상 시킬 수 있을 것 같습니다. 평소, 백업 및 복구와 서버 모니터링 부분이 평소 궁금했었는데, 책을 읽으며 해소할 수 있었습니다.

 

끝으로 입문자들이 부담없이 배울 수 있는 책입니다. 이 책 한 권이면 부가적으로 필요한 내용은 인터넷으로 다 배울 수 있지 않을까 싶습니다. 

단단하게 기초를 쌓고 싶으신 분들에게 추천드립니다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한 줄 요약: MySQL 설치부터 튜닝까지 A to Z를 다룬 입문서!

 

MySQL을 다룬 입문서를 오랜만에 만났다. 

《러닝 MySQL》은 책 제목처럼 MySQL을 다룬 입문서다.


한빛미디어에서 나온 《이것이 MySQL이다》와 간단하게 비교해봤다.

공통점:《이것이 MySQL이다》의 Part1~3과 《러닝 MySQL》의 Part 1~2내용

차이점:
《이것이 MySQL이다》
Part4에서 PHP언어를 사용한 미니 프로젝트에서 MySQL을 적용하여 SQL을 사용해볼 수 있게 구성되어 있다.

《러닝 MySQL》
Part3에서는 트랜잭션, 락, 사용자 및 권한 관리, 백업 및 복구, 서버 튜닝 등 MySQL이라는 RDBMS를 깊이있게 다룬다. 그리고 Part4에선 서버 모니터링, 가용성, 클라우드 환경에서 MySQL, 로드밸런싱, 상황 분석까지 다룬다.

 

이렇듯 비슷하지만 두 권의 책이 다루는 주제가 다르다.
이미 프로그래밍 언어와 (RDBMS, NoSQL 종류에 상관없이)SQL을 사용할 줄 알고있다면 《러닝 MySQL》을 추천하고 싶다. 입문서이지만 MySQL 자체에 더 초점을 맞춰 설명하고 있기 때문이다.

《러닝 MySQL》은 기본 설치 과정, 데이터베이스 설계, 백업, 복구부터 CPU 성능 분석, 버그 조사까지 4부 구성이다. SQL을 직접 가르쳐주지 않는다. 하지만 RDBMS의 SQL에서 사용하는 대부분의 쿼리 구조는 비슷하다. 그래서인지 초보자가 읽어도 MySQL을 다룰 수 있도록 구성되어 있다는 느낌을 받았다. 책의 제목이 《러닝 MySQL》이지만 Postgres, Oracle, SQL Server 같은 다른 환경에서도 적용할 수 있는 백업, 고 가용성, 복구 전략 등도 소개하고 있다.



책의 전체 목차는 아래와 같다.

1부 - MySQL 시작
MySQL을 여러 운영체제에 설치하고 설정하는 방법
리눅스, 윈도우, 맥OS, 도커

2부 - MySQL 사용법
데이터베이스를 생성하고 사용하기 전에 적절한 데이터베이스 설계법을 살펴봄
데이터베이스 기능에 어떻게 접근하는지, 데이터베이스 정보가 서로 어떻게 관계되는지 배움
* sakila, world, employees 같은 예시 데이터베이스를 다운로드하고 구성하는 방법 보여줌
데이터베이스 모델링과 설계
기본SQL(CRUD-Create, Read, Update, Delete)
테이블, 인덱스 등 생성 및 수정방법
고급 쿼리-DB엔진, 중첩 쿼리 등

3부 - 제품 환경의 MySQL
MySQL이 동시에 동일한 데이터로 접근할 때의 처리 방법
트랜잭션 및 락(Lock) - 격리, 트랜잭션, 교착 상태의 개념
실행계획 확인 및 쿼리 분석
보안(사용자 및 권한 관리 등)
옵션 파일(/etc/my.cnf) 사용법
백업 및 복구
서버 구성 및 튜닝

4부 - 기타
MySQL 서버 모니터링
고 가용성
클라우드 MySQL - AWS(아마존 웹 서비스), GCP(구글 클라우드 플랫폼), Azure(마이크로소프트)
MySQL 로드 밸런싱
고급 분석 방법과 도구 - MySQL 셸, Flame 그래프, 버그 분석법


처음 SQL을 공부할 때 환경 설치부터 어렵게 느낀다. 하지만 《러닝 MySQL》은 리눅스, 윈도우, 맥OS, 도커와 같이 다양한 환경에서 설치하는 방법을 상세히 설명하고 있어서 입문하며 어려움은 없을 것같다.


 SQL을 공부하기 전 SQL이 왜 필요한지 '데이터베이스 모델링과 설계'를 통해 필요성을 깨우치고, SQL을 사용해서 그 효과를 체험해볼 수 있다.


앞에서도 언급했지만 3-4부의 내용은 MySQL뿐만 아니라 Postgres, Oracle, SQL Server에서도 비슷하게 적용해볼 수 있는 주제이기에 꼭 읽고 공부해보길 권한다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
리뷰를 위해 한빛미디어에서 책을 제공받았지만 주관적인 생각을 그대로 적었습니다.

 

여러 DBMS중에서 MySQL은 제일 기본이 되는 DB입니다.
그러한 MySQL에 대하여, WIn/Mac/Linux/Docker/Cloud등 다양한 환경에서 구성 및 운영을 실습해보기 좋은 책입니다."한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

본 리뷰는 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


책의 제목에서 알 수 있듯, 이 책은 MySQL 기술서다.

책의 목차는 다음과 같다.

  • 1부 : MySQL 시작

    • 1장 : MySQL 설치

  • 2부 - MySQL 사용법

    • 2장 : 데이터베이스 모델링과 설계

    • 3장 : 기본 SQL

    • 4장 : 데이터베이스 구성 작업

    • 5장 : 고급 쿼리

  • 3부 - 제품 환경의 MySQL

    • 6장 : 트랜잭션 및 잠금

    • 7장 : MySQL 추가 활용법

    • 8장 : 사용자 및 권한 관리

    • 9장 : 옵션 파일 사용법

    • 10장 : 백업 및 복구

    • 11장 : 서버 구성 및 튜닝

  • 4부 - 기타

    • 12장 : MySQL 서버 모니터링

    • 13장 : 고가용성

    • 14장 : 클라우드 MySQL

    • 15장 : MySQL 로드 밸런싱

    • 16장 : 기타 주제

목차를 훑어보면 MySQL 설치부터 데이터베이스에 대한 기본적인 설명, 설계법, SQL 문법, DB 구성 등, MYSQL을 사용하기 위한 상세한 설명부터, 3부 부터는 트랜잭션이나 성능 분석, 버그 조사 등 심화부분까지 알차게 들어있다.

그래서 MySQL을 처음 배우는 사람에게도, 데이터베이스를 조금 더 깊이 배워보고자 하는 사람도 모두 추천하는 책이다.

특히나 MySQL을 설치하는 부분에서도 우분투, CentOS, 맥, 윈도우, 도커 모두 설명하는 건 물론이고 버전도 8.0 과 5.7 다 설명해주기 때문에 이 책 한 권만 있어도 설치에 애먹을 일이 없다.

아무래도 기술서이다보니 찬찬히 읽으면서 내가 이후 쓰일 부분만 정리하고 있는데 위처럼 명령어 한줄 한줄 알려줘서 쉽게 따라 설치할 수 있게 구성되어 있다.


또 그림 역시 풍부해서 글로만 이해가 안 되는 부분을 쉽게 설명해주었다. ERD 부분도 각 기호와 도형이 의미하는 바도 잘 설명해주고 있다.

책 한 권으로 MySQL에 대해 기초부터 심화까지 두루 살펴보고 싶다면 이 책을 추천한다.

[나는리뷰어다] 한빛미디어, 러닝 MySQL


글 / 사진 : 서원준 (news@toktoknews.com


 

 


본 소개 글은 한빛미디어 나는 리뷰어다 서평단을 통해서 도서를 제공받아 진행하였으며, 구매가이드(도서소개) 성격이 강합니다. 


전에 프로그래밍 및 개발자 도서 또는 외국어 및 각종 수험서의 서평을 진행할 때마다 입버릇처럼 해온 말이 “아픈 손가락” 이란 말입니다. 이 말은 제가 제대로 공부를 했다면 인생이 일찍 바뀌었을 텐데 에 대한 아쉬움을 토로하는 과정에서 나온 말입니다. 이번에 다루는 분야 역시도 제대로 된 책이 없어서 공부가 제대로 되지 못한 부분이었죠. 


10월달에 데이터베이스 한 번 제대로 배워보겠다고 책을 얻었고 또한 서평을 쓰고 있습니다만 여러가지로 녹록치 않았습니다. 제 개인적으로 일도 엄청 많았고 당장 해야할 업무가 있었는데 차일피일 미뤄지는 바람에 이제서야 집필을 하고 있고 실습을 했습니다. 그런 가운데 데이터베이스에 대한 감을 찾아야 했고 실제로 그렇게 하려고 했습니다만 시간이 제약되어 있다 보니까 일이 뜻대로 풀리지 않게 되었고 결국 책을 다 읽지 못한 채로 서평을 등록해야 하는 상황에 놓이게 되었습니다. 


 

 

 

 

 

 

 

 

 

 

 

 

 

 


이번 달에 소개할 책은 앞서도 이야기했듯이 “아픈 손가락” 중 하나인 데이터베이스 관련 서적입니다. 필자는 SQL을 알기 전에 MS액세스부터 알고 있었습니다. MS오피스 프로그램 중 액세스가 데이터베이스로는 유명하기 때문이었습니다. 그러나 개발자들은 흔히 알고 있는 액세스 대신에 SQL을 많이 사용하고 있습니다. 


이 많고 많은 SQL언어 프로그램 중 여기서는 MySQL에 대해서 다루고 있습니다. “러닝 MySQL” 이란 책은 MySQL 사용법에 대한 내용을 다룬 종합 가이드 북으로서 데이터베이스의 설계과정부터 비용 최적화까지 MySQL에 대한 모든 것을 배워 볼 수 있는 책입니다. 데이터베이스 사용에 대한 감을 잡는데 도움이 되겠다고 생각하게 되었습니다. 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


도서 소개를 마치면서


러닝 MySQL을 통해서 데이터베이스의 효과적인 구성과 운영 방법을 배울 수 있다면 정말 좋겠다는 생각을 했는데 막상 책을 열어 보니 윈도우 11에서 MySQL 설치가 가능하다는 사실을 알게 되었습니다. 필자로서는 서버 운영체제에서나 설치 가능한 SQL을 윈도우 운영체제에서 설치할 수 있다는 사실이 기뻤습니다. 러닝 MySQL을 많은 개발자분들이 읽고 현업에서 사용할 수 있었으면 좋겠다는 생각이 듭니다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

IMG_2981.jpg

 

 

 

책의 구성과 개요

 

파트 1은 MySQL의 버전 및 플랫폼별 설치 방법에 대한 상세한 설명을 다루고 있습니다. 그러나 현재 많은 회사에서 클라우드 기반의 DBMS를 사용하고 있으며 직접 설치보다는 옵션 설정을 통해 사용자 정의로 운영하는 경우가 늘어가고 있습니다. 따라서 책에서는 직접 설치에 중점을 두고 있어서 현업에서 사용되는 클라우드 환경과는 조금 차이가 있습니다.

 

 

파트 2는 MySQL 사용법 중에 주로 데이터베이스 모델링 설계에 대한 내용과 SQL 사용법 데이터베이스 구성 작업과 그리고 고급 SQL에 관련된 내용입니다. 주로 데이터베이스 모델링과 기본 SQL 작업 및 데이터베이스 구성과 고급 쿼리 사용법에 대해서 설명되어 있습니다.

 

 

파트 3은 제품 환경의 MySQL 다루고 있고 여기선 트랜잭션 및 잠금 MySQL 추가 활용법(csv를 활용한 데이터로드), 쿼리 실행계획 테이블 유형, 사용자 및 권한 관리, 옵션 파일 사용법, 백업 및 복구 등 실제로 MySQL을 유지하기 위한 다양한 노하우를 학습하실 수 있습니다.

 

파트 4는 MySQL 서버 모니터링과 고가용성, 클라우드 MySQL과 로드 밸런싱 및 기타 주제로 되어있습니다.

 

 

 

책의 장점

- 오로지 MySQL을 제대로 학습하기에 좋은 서적입니다. 시중에 이렇게 자세하게 학습할 수 있는 서적이 그렇게 많지는 않습니다. 오로지 저의 생각입니다.

- 다양한 예제 구문 및 적절한 예시 그리고 그 설명에 추가적인 팁 부분들이 더욱더 MySQL을 학습하기에 좋았습니다.

- 사소하지만 어떠부분의 키워드가 몇 버전에서 사용할 수 있는지 나와있어서 좋았습니다. 왜냐하면 아무래도 모든 회사들이 MySQL 버전이 최신이 아닐 수도 있으므로 이 부분이 상당히 좋았던 것 같습니다.

 

 

책의 단점

- 아무래도 어느정도 MySQL을 쓰고 있는 분들은 처음부터 읽기보다는 자기가 아는 부분은 스킵하면서 새롭게 추가된 부분을 위주로 읽어가시는 게 좋을 것 같습니다.

 

마지막으로 

 

이 책은 MySQL 데이터베이스에 대한 설계부터 효율적인 운영 방법을 제공을 하고 있습니다.

 

아무래도 개발자이면서 데이터베이스도 유지 및 관리를 하는 조직이면 더욱더 이 책을 가지고 필요한 노하우를 얻어가셨으면 좋겠습니다.

 

 

 

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

러닝 MySQL은 MySQL을 아직 사용해보지 못하고 접하지 못한 분들이나 실 운영환경에서 좀 더 능숙한 사용을 위한 분들에게 좋은 지침서이다.​

 

총 4부로 이루어져 있다.

1부는 대부분의 기본서처럼 설치방법을 소개한다.

다양한 OS 환경 및 Docker에서도 MySQL을 사용하는 방법도 다루기 때문에 참고하면 좋을 듯하다.

이 부분은 MySQL을 공부하기 위한 첫번째 단계이지만 이미 실습환경이 구축되어 있다면 건너뛰어도 되지만 실습 외의 환경에서 MySQL을 사용하게 된다면 설치법을 참고할 수 있게 내용이 잘 구성되어 있다.

 

2부는 MySQL의 사용법을 다룬다.

데이터베이스를 생성하고, 접속하는 방법을 배워 모델링을 설계하는 내용을 가장 먼저 다루는데 실습에서 사용되는 데이터를 미리 셋팅하여 이 책에서 다루는 실습들을 따라해보는 것을 추천한다.

이후에는 MySQL에 생성한 데이터베이스에 데이터를 다루는 CRUD 명령을 사용하는 문법을 다루고 테이블이나 인덱스 등을 사용하는 법도 다룬다.

또한 기초 문법 쿼리 외에 좀 더 복잡한 쿼리들도 다루고 있어서 단계별로 하나하나 따라가면서 직접 작성하고 결과도 출력해보면 내용을 이해하는 데에 도움이 된다.

 

3부에서는 트랜잭션을 다루는 기법을 배운다.

트랜잭션을 다루기 위해 알아야 하는 기본 개념을 설명하고, 실행계획을 통해 최적의 쿼리를 완성해가는 방법을 다룬다.

특히 실행계획을 보는 방법은 개발자도 필히 알아야 하는 내용이기 때문에 이 부분은 공부하는 것을 추천한다.

3부에 후반부 내용은 주로 데이터베이스를 관리하는 DBA분들의 업무와 연관된 내용을 다루는데, 사용자 생성과 권한 관리, 구성파일을 사용법, 데이터베이스를 백업하고 복구하는 방법, 서버의 구성과 튜닝법을 다룬다.

 

마지막 4부에서는 견고한 운을 위한 모니터링 및 분석법과 로드밸런싱, 레플리카 설정법등을 배우고 다양한 업체의 클라우드에서 다루는 MySQL의 사용법도 다룬다.

 

이 책의 두께만큼이나 MySQL을 효율적이고 견고하게 운영하는 방법에 대해 초보자도 단계별로 배울 수 있도록 목차가 구성되어있다는 점이 좋았다.

최근 MySQL을 공부해볼 계획을 갖고 있었는데, 이 책을 리뷰도서로 접하게 되어서 개인적으로도 좋았다.

이 책에서는 주제에 따라 차근차근 따라할 수 있게 알려주면서도 개념에 대해서 중간중간 이해하기 쉽게 알려주는 것이 좋았다. 팀의 시니어 개발자가 다른데서 들을 수 없었던 지식을 알려주는 느낌도 있었다.

그렇든 방법론만 있는 것도 아니라, 저자가 말하는 다양한 경우에서의 조언도 함께 포함되어 있어, MySQL 을 운영함에 있어서도 생각의 폭이 넓어질 것이라고 생각된다.

다른 한가지 좋았던 점은, 기본적인 방법과 지식들 말고도 MySQL 셸, Flame 그래프, 소스를 사용한 MySQL 빌드, MySQL 충돌 원인 분석 등 다양한 내용도 들어있다.

나도 이 책을 보면서 SQL 개발자는 어떨까라는 생각을 가지게 만드는 책이었다.

SQL 개발자가 되고자하거나 경험해보고싶다면 이 책을 추천한다.

20231028_143730.jpg

 

개발자들이 사용하는 다양한 데이터베이스 중 관계형 데이터베이스로 많이 사용하는 MySQL이 있습니다. 여러 종류의 DBMS가 있지만, 그중 하나만 잘 익혀놔도 다른 관계형 데이터베이스를 사용하는 데에 어려움이 없는데요. 

한빛미디어의 러닝 MySQL 도서는 MySQL을 정말 제대로 A부터 Z까지 자세히 설명과 실습으로 배울 수 있게 해주는 도서더라고요. 

 

MySQL로 데이터베이스를 효과적으로 만들고 쿼리 작성은 어떻게 하는 건지에 관한 기초적인 사용 방법뿐 아니라 비용을 최소화하고 보안이나 백업 등은 어떻게 해야 하는지에 관한 방법까지 알 수 있었어요. 

 

 

20231028_144013.jpg

 

2장부터 5장에 걸쳐서는 MySQL 사용법에 대해 다루는데, 이런 관계형 데이터베이스 사용이 처음이라면 2장의 데이터베이스 모델링과 설계 부분을 자세히 보고 넘어가면 좋을 것 같았습니다. 그림으로 엔티티 간의 관계를 잘 설명해 주어 이해하기 쉬웠어요. 

 

3장은 기본적으로 MYSQL을 사용하는데 필요한 CRUD 쿼리문을 설명해 주는데 꼭 따라 실습해 보길 추천! 이 SQL 언어를 잘 배워놔야, 데이터베이스 안에 있는 데이터를 조작할 수 있으니까요. 

 

5장은 고급 쿼리를 다루는데요.  조금 어렵게 느껴지더라도 (저는 join 부분이 늘 헷갈렸어요....) 책의 설명이 매우 상세하고, 실습과정 구성이 잘 되어 있어서 차근차근 따라 한다면 충분히 익힐 수 있게 되어있습니다. 

 

20231028_144511.jpg

 

책의 후반부로 갈수록 현업에서 MySQL을 사용할 때 중요한 내용들을 다루고 있습니다. 

 

특히 가장 중요한 보안! 데이터베이스에 저장되는 자료에는 민감한 개인정보 같은 내용들도 있기 때문에 디비 서버를 어떻게 안전하게 보호할 것인가, 보호를 위해 어떤 기술이 권장되는가를 알려줘서 꼭 읽고 넘어가야 할 부분이라고 생각했습니다. 당장 내가 현업에서 MySQL을 다루지 않더라도 어떤 DBMS를 사용하던 비슷하게 보안 기술을 사용할 테니까요. 

 

보안 외에도 방대한 데이터베이스를 어떻게 백업하고 복구할 것인가에 대해서도 논리적 / 물리적으로 나누어 각 백업 및 복구의 속성과 특징을 자세히 설명해 주고 있습니다. 

 

더 뒤로 가면 데이터베이스 비용을 최소화하고 성능을 극대화하는 각종 방법들이 나와있으므로, 한빛미디어 러닝 MySQL 도서는 MYSQL을 처음 사용하는 첫 사용자부터, 현업에서 MySQL을 사용하고 다루는 DBA나 개발자까지 누구나 읽어보면 좋을 것 같아요. 저도 MySQL을 제대로 익힐 때까지는 이 책을 MySQL 바이블이다 생각하고 늘 책장에 두고 보려고요. 

 

 

​** 본 리뷰는 한빛미디어 <나는 리뷰어다> 리뷰어 활동으로 도서만을 제공받아, 리뷰어의 주관적인 견해로 작성된 리뷰입니다. **

 

 

 

데이터베이스를 처음 접하는 사람과, MySql에 대한 전반적인 것에 대한 지식이 필요한 사람에게 알맞는 책이라 생각한다.

 

여러가지 환경에서의 설치방법, 정규화, 기본 쿼리 작성 등등 기본적인 내용부터 백업, 튜닝, 모니터링등의 실제 운영상에 필요한 내용까지 담겨있다.

많은 내용이 담겨있기에 페이지수가 상당하지만 반면에 그러한 연유로 각 항목들에 대해 짧게짧게 다루고 넘어간 것 같은 아쉬움이 남는다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

1231026.jpg

 


MySQL은 데이터베이스 관리를 위한 강력한 도구 중 하나인데요.

데이터를 저장하고 관리하는 핵심 역할을 합니다.


데이터베이스와 SQL의 기본 개념을 익히고 기본 쿼리 작성법을 배우면 데이터베이스를 쉽게 활용할 수 있습니다.


데이터를 다루는 능력을 향상시키는 첫걸음을 하고 싶은 분들에게 소개해 드릴  책이 있습니다.


소개해 드릴 책은 바로 ‘러닝 MySQL’입니다.


MySQL은 데이터의 중심이므로, 데이터베이스 관리는 중요한 스킬 중 하나입니다.


MySQL 서버의 설정과 튜닝에 대해 학습하면 성능을 최적화할 수 있습니다.


이 책의 예제와 실습으로 MySQL을 효과적으로 활용하는 방법을 같이 알아보겠습니다.


4231026.jpg

 




 

◆ MySQL 운영과 최적화: 도구와 기술로 데이터베이스 역량 향상

MySQL 셸, Flame 그래프, MySQL 빌드, 충돌 원인 분석과 같은 다양한 주제를 다룹니다.


MySQL 관련 도구와 기술에 대한 정보를 제공하여 데이터베이스 운영 및 개발 역량을 향상시킬 수 있습니다.


클라우드 환경에서의 MySQL 활용 및 로드 밸런싱과 같은 고급 주제도 다루고 있어 MySQL 입문자와 전반적인 운영을 알고 싶은 분들에게 많은 도움이 될 것입니다.


MySQL을 다루는 개발자와 데이터베이스 관리자에게 꼭 필요한 자원인데요.

MySQL을 더 효과적으로 활용하고 최적화하는 데 도움이 될 것입니다.


MySQL 셸은 데이터베이스와 상호작용하기 위한 명령줄 도구입니다.


Flame 그래프는 성능 문제를 진단하고 해결하기 위해 그래프를 생성하고 분석하는 데 활용할 수 있습니다.


이러한 도구와 기술을 활용하여 MySQL 데이터베이스를 효과적으로 관리하고 최적화할 수 있을 겁니다.


3231026.jpg

 




 

◆ MySQL 효과적 활용과 성능 최적화: 인덱스, 보안, 백업 전략

MySQL을 어떻게 효과적으로 활용할 수 있을까요?


쿼리를 사용한 데이터 입력, CSV 파일에서 데이터 로드, 쿼리를 사용한 테이블 생성이 가능합니다.


또한 여러 테이블에서 업데이트 및 삭제 작업 등 MySQL 추가 활용법 내용도 다루고 있습니다.


이를 통해 데이터를 효과적으로 관리하고 조작하는 방법을 익힐 수 있습니다.


데이터베이스 성능을 향상시키려면 인덱스를 올바르게 활용해야 합니다.


이렇게 하면 데이터 검색이 빨라지고 효율적으로 데이터를 찾을 수 있습니다.


중요한 데이터의 보안을 강화하기 위해 사용자 권한 및 암호 정책을 설정하여 민감한 정보를 안전하게 보호하기 위해 노력해야 합니다.


데이터 손실을 방지하기 위해 정기적인 백업을 설정하고 관리를 잘해야 합니다.


2231026.jpg

 




 

끝으로 이 책은 MySQL을 처음 배우는 입문자부터 실무자까지 모두를 위한 포괄적인 가이드입니다.


MySQL 데이터베이스의 설계부터 효율적인 운영에 필요한 노하우를 제공합니다.


각 장에서 제공하는 실용적인 정보와 예제를 통해 MySQL에 대한 심도 있는 이해를 얻을 수 있으며, 최신 MySQL 8.0 버전을 중심으로 학습할 수 있는 최신 정보를 포함하고 있습니다.


다양한 운영체제에 대한 MySQL 설치 방법과 도커 운영 방법도 알려줍니다.


732 페이지 분량의 책으로 입문자에게 MySQL 데이터베이스를 효과적으로 운영하는 방법이 담겨 있습니다.


데이터의 방향키를 잡고 싶은 분들에게 이 책을 추천합니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


"<한빛미디어 나는 리뷰어다>" 활동을 위해서 전자책을 제공받아 작성된 서평입니다.

제목 : 러닝 MySQL


- 한 줄 평가

DB 스킬을 기대한다면 비추천, 입문과 운영을 알아보고 있다면 추천!

 

- 대상 독자

DB 또는 MySQL 입문자, MySQL을 활용하며 실무에 활용하고 싶은 개발자와 DBA

 

- 책의 내용 및 구성

1. MySQL 8.0을 기반으로 작성되었으나 5.7 버전의 정보도 포함되어있음

2. 4개의 파트, 16개의 챕터, 약 720p로 구성되어 있음

3. '운영 종합 가이드' 라는 부제처럼 초반 파트(1~2)는 설치 및 기본 문법, 다양한 조작법에 대해 알려줌

4. 3부에서는 데이터 접근, 운영 시에 필요한 내용(트랜잭션, 권한 등)들에 대해 이야기 하고 마지막 4부에선 성능과 확장&관리(클라우드, 모니터링)에 대해 이야기 함

5. 리눅스의 환경은 CentOS 7을 활용

 

- 책에서 눈에 띄는 점

1. MySQL 의 포크 버전과 MariaDB등 오픈소스에 대해 알려주고 설치하는 방법을 간단히 언급


2. 기호로 표현한 ER 다이어그램과 엔티티를 표현한 물리적 모델을 보여주면서 기본적인 설계 예시를 보여줌


- 총평

 많이 아쉬운 책인 것 같다.

700p나 되는 분량에 고급 쿼리문이라고 쓰여있는 내용을 보고 '겨우?' 라는 생각이 들었다.

'종합 운영 가이드' 라는 부제에 써 있듯이 현업에서 DB 쿼리문을 활용해 난제를 해결할 수 있는 그런 고급 스킬이나 노하우 같은 것은 없다. 말 그대로 입문자와 운영을 위한 사람들을 위한 책인 것이다.

 아쉽다고 표현한 것은 위에서 말한 것 처럼 '스킬'이나 '노하우'를 원하는 사람 중 하나 였기 때문이다. 전자책으로 봤지만 이 두깨(분량)에 실전에서 사용 될 만한 '엄청난 기술 한 두개 정돈 실려있겠지?' 라고 처음부터 기대했던 것이 더욱 큰 아쉬움으로 왔던 것 같다.

 개인적인 사견을 빼놓고 보면 전체적인 운영을 하기에 꽤나 좋은 책이라고 생각한다. 맛보기라고 하지만 두루두루 다양한 기술들을 활용해볼 수 있게 했고, MySQL에만 국한된 것이 아닌 파생 제품들(mariaDB 등) 에 대해서도 친절하게 설명을 해준다.

 개인적으로는 가장 처음으로 접한 DB이기 때문에 가장 호감이 간다. 요즘엔 몽고DB나 NoSQL 등이 한창 뜨고 있지만 관계를 정확하게 구별하고 설계할 수 있다는 관계형 DB만의 장점은 죽지 않고 오래오래 이어갈 것이다.

물론 각자의 장단점이 있겠지만, 무료이면서도 접근이 쉽다는게 가장 큰 장점이 아닐까 싶다.

 한가지 더 아쉬운점을 꼽자면, 2023년에 나온 책임에도 불구하고 그림이나 구성이 세련되지 못하다는 것이다. 읽다보면 교과서를 보는 듯 하품이 몰려오기도 하는데, 700p가 넘는 분량을 처음부터 쭉 읽게 하는것이 아니라 골라서 보라고 이렇게 만든게 아닐까 싶기도 하다.


 

이 책은 MYSQL의 설치 부터 명령어, 그리고 백업 까지 하나하나 알려준다. 설치는 다양한 운영체제들을 예시로 들어 알려주는데 리눅스, 도커, 맥, 윈도우 등이 있다.

 

설치 파트에서 짬짬이 폴더구성에 대한 것들도 알려준다.

 

MYSQL 서버 업그레이드에선 메이져 업그레이드, 마이너 업그레이드, 인플레이스 업그레이드, 논리적 업그레이드 등에 대한 내용이 나오는데, 이런 이론적인 느낌의 책은 언제나 좋다. 또한 설치 할 때의 예시등이 아주 잘 나와있어서 쓰면서 코드를 외웠다.

너무 마음에 든다.

 

 

 

데이터 베이스 모델링의 설계 과정은 jpa할 때도 꽤나 애먹었던 엔티티들이 나왔다.

제법 어려운 관계도를 글 만으로 이렇게 잘 풀어 낼 수 있다는 점이 신기했다.

사이사이에 있는 다이어그램들이 글의 내용을 더 쉽게 이해 할 수 있도록 많은 도움을 주었다.

 

데이터 베이스 구성 작업 에서는 예약어들을 사용한 예시들이 많이 나온다.

 

 

정말.. MYSQL 계의 바이블이라고 해도 과언이 아닐정도이다.

 

백업과 복구 에서는 다양한 방식으로 백업하는 방법을 알려 주는데, XtraBackup방식이 가장 인상적이었다.

XtraBackup방식 : 물리적 백업의 다음 단계는 핫 백업(hot backup)의 구현입니다. 즉, 데이터 베이스가 실행되는 동안 데이터베이스 파일의 복사본을 만드는 것입니다.

 

 

 

 

 

다음은 서버 모니터링에 대한 것이 나온다. 거의 실습 위주라 얼른 실습을 해보는 편이 좋을 듯하다. 처음엔 책 내용이 너무 어려운게 아닌가 싶었는데 읽다보니 이해가 되기도 하고, Join이 나올 땐 반갑기 까지했다.

 

MySQL을 꾸준히 공부 할 마음이 있는 사람이라면 무조건 이 책을 읽어보는 것을 추천한다. 나는 이 책을 내가 MYSQL과 친해질 때 까지 바이블 처럼 생각 하고 읽을 생각이다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 

러닝 MySQL은 MySQL 데이터베이스 시스템을 이해하고 활용하는 데 도움이 되는 매우 유용한 도서 입니다.
 
이 책은 MySQL 데이터베이스의 다양한 측면을 다루고 있습니다. 설치, 설정, 데이터 모델링, 쿼리 작성, 백업 및 복원, 보안, 성능 최적화 등에 대한 내용을 포괄적으로 다루어 MySQL 데이터베이스를 전반적으로 이해하는 데 도움이 되었습니다. 이론뿐만 아니라 실습 기회를 제공합니다. 예제 코드와 실습 과제를 통해 독자가 직접 MySQL 데이터베이스를 다루면서 학습할 수 있게 돕습니다.
 
초보자도 쉽게 배울 수 있도록 기초부터 차근차근 설명을 하였으며 심화 내용까지 폭넓게 학습하고, MySQL을 사용하여 데이터베이스를 관리하고 개발하는 데 필요한 실력을 향상시킬 수 있었습니다. MySQL을 사용하는 데 관심이 있는 분들에게 강력히 추천하고 싶은 도서입니다.
 
 

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
러닝 MySQL
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
러닝 MySQL
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
러닝 MySQL
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0