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

한빛출판네트워크

MySQL Troubleshooting : 쿼리 문제, 원인을 알면 해결은 쉽다

한빛미디어

번역서

판매중

  • 저자 : 스베타 스머노바(Sveta Smirnova)
  • 번역 : 강권학
  • 출간 : 2013-02-07
  • 페이지 : 336 쪽
  • ISBN : 9788979149999
  • 물류코드 :1999
  • 초급 초중급 중급 중고급 고급
4.8점 (4명)
좋아요 : 26

버그, 성능 저하, 치명적 오류, 데이터 훼손, 엉뚱한 데이터가 출력되는 문제 등은 데이터베이스 관리자나 DBA라면 늘 겪는 일이다. 이런 문제 해결의 지름길은 원인 분석이다. 원인만 알면 문제는 금방 해결할 수 있다. 이 책은 원인 분석이라는 흐름 속에서 놓치기 쉬운 간단한 문제 해결법부터, 문제 예방을 위한 MySQL 환경 설정법, 서드파티 솔루션 문제 해결 등 MySQL에서 발생하는 여러 가지 장애를 해결하는 방법을 풍부한 예제로 설명한다. 빅데이터가 주목받으면서 NoSQL 데이터베이스에 관한 관심이 높아졌지만 MySQL은 여전히 데이터베이스 관리와 분석의 기본이다. 이 책과 함께 데이터베이스 전문가로 도약해보자.

 

특징과 장점

  • 멀티스레드 환경에서 애플리케이션을 실행할 때 발생하는 문제를 해결한다.
  • MySQL 환경 설정 때문에 발생한 문제를 디버깅하고 해결한다.
  • 운영 체제 튜닝이 서버에 미치는 영향을 이해한다.
  • 데이터를 이중화할 때 필요한 특별한 문제 해결 기법을 소개한다.
  • 서드파티 솔루션 및 추가적인 문제 해결 기법과 도구 정보를 제공한다.

 

어떤 독자를 위한 책인가?

  • MySQL을 운영하고 있는 데이터베이스 관리자
  • MySQL과 연동한 애플리케이션을 개발하는 개발자
  • 각 회사의 MySQL 기술 지원 담당자
  • MySQL을 능숙하고 다루기 원하는 대학생
스베타 스머노바 저자

스베타 스머노바

오라클 MySQL 지원 그룹 버그 검증 팀에서 수석 기술 지원 엔지니어로 근무하고 있습니다. 매일 까다로운 지원 문제와 MySQL 버그를 해결하고자 애쓰고 있습니다. 2006년 MySQL을 본격적으로 다루기 전에는 여러 폐쇄적인 CRM 시스템의 웹 개발자로 근무한 경험도 있습니다. 평소 오픈 소스 커뮤니티에 적극 참여하며, 주요 관심사는 DBA 문제 해결 과정을 반자동화하는 방법을 찾는 일입니다.

강권학 역자

강권학

중앙대학교 컴퓨터공학과에서 학사와 석사학위를 받았다. 국방과학연구소, 퓨쳐시스템, 안철수연구소에서 13년간 개발자, 보안전문가, 프로젝트 관리자로 근무하였으며, 2009년 4월 호주 멜번에 iGonagi Pty. Ltd.를 설립하고 아이폰 애플리케이션을 개발하고 있다. 『Head First iPhone Development』, 『Head First Programming』, 『iPhone Programming 제대로 배우기』, 『iPhone 3D Programming: using OpenGL ES』(이상 한빛미디어)를 번역했다.

1장 기본적인 문제
1.1 잘못된 구문
1.2 SELECT문의 잘못된 결과
1.3 이전 갱신에 의한 문제
1.4 쿼리 결과 확인하기
1.5 데이터 에러 추적하기
1.6 느린 쿼리
      1.6.1 EXPLAIN 명령의 정보로 쿼리 튜닝하기
      1.6.2 테이블 튜닝과 인덱스
      1.6.3 최적화를 멈춰야 할 때
      1.6.4 옵션의 영향
      1.6.5 데이터를 수정하는 쿼리
      1.6.6 만병통치약은 없다
1.7 서버 응답이 없을 때
1.8 스토리지 엔진 고유의 문제
1.8.1 MyISAM 손상
1.8.2 InnoDB 손상
1.9 권한 문제

 

2장 동시성 문제
2.1 락과 트랜잭션
2.2 락
     2.2.1 테이블 락
     2.2.2 행 락
2.3 트랜잭션
     2.3.1 숨어 있는 쿼리
     2.3.2 데드락
     2.3.3 암묵적 커밋
2.4 메타데이터 락
      2.4.1 메타데이터 락과 구형 모델
2.5 동시성이 성능에 미치는 영향
      2.5.1 동시성 문제에 대해 InnoDB 트랜잭션 감시하기
      2.5.2 동시성 문제에 대해 다른 리소스 감시하기
2.6 그 외의 락 문제
2.7 이중화와 동시성
      2.7.1 문장 기반 이중화의 문제
      2.7.2 트랜잭션과 비트랜잭션 테이블 혼합하기
      2.7.3 보조 서버에서 발생하는 문제
2.8 MySQL 문제 해결 도구를 효과적으로 사용하기
     2.8.1 SHOW PROCESSLIST 명령과 INFORMATION_SCHEMA.PROCESSLIST 테이블
     2.8.2 SHOW ENGINE INNODB STATUS 명령과 InnoDB 모니터
     2.8.3 INFORMATION_SCHEMA 테이블
     2.8.4 PERFORMANCE_SCHEMA 테이블
     2.8.5 로그 파일

 

3장 서버 옵션 영향
3.1 서비스 옵션
3.2 서버 작동을 바꾸는 변수
3.3 하드웨어 리소스 제한 옵션
3.4 --no-defaults 옵션
3.5 성능 옵션
3.6 서두르면 망친다
3.7 SET문
3.8 옵션 영향 확인 방법
3.9 변수 설명
      3.9.1 서버와 클라이언트에 영향을 주는 옵션
      3.9.2 성능에 관련된 옵션
      3.9.3 옵션에 대한 안전한 값 계산하기

 

4장 MySQL 환경
4.1 물리적인 하드웨어 제한
     4.1.1 램
     4.1.2 프로세서와 코어
     4.1.3 디스크 I/O
     4.1.4 네트워크 대역폭
     4.1.5 지연 영향의 사례
4.2 운영체제 제한
4.3 다른 소프트웨어의 영향

 

5장 이중화 문제 해결
5.1 보조 서버 상태 표시하기
5.2 I/O 스레드 문제 해결하기
5.3 SQL 스레드 문제 해결하기
      5.3.1 주 서버와 보조 서버의 데이터가 다를 때
      5.3.2 순환 이중화와 보조 서버에 비이중화 쓰기
      5.3.3 불완전하거나 변경된 SQL문
      5.3.4 주 서버와 보조 서버에서 다른 에러
      5.3.5 환경 설정
      5.3.6 보조 서버가 주 서버보다 실행 속도가 많이 느릴 때

 

6장 문제 해결 기법과 도구
6.1 쿼리
      6.1.1 느린 쿼리 로그
      6.1.2 사용자가 정의할 수 있는 도구
      6.1.3 MySQL 명령행 인터페이스
6.2 환경의 영향
6.3 샌드박스
6.4 에러와 로그
      6.4.1 다시 보는 에러 정보
      6.4.2 크래시
6.5 정보 수집 도구
      6.5.1 정보 스키마
      6.5.2 InnoDB 정보 스키마 테이블
      6.5.3 InnoDB 모니터
      6.5.4 성능 스키마
      6.5.5 SHOW [GLOBAL] STATUS
6.6 문제 단순화하기(테스트 케이스의 최소화)
6.7 문제를 해결하는 일반적인 단계
6.8 테스트 방법
      6.8.1 새로운 버전에 쿼리 시도하기
      6.8.2 알려진 버그 확인하기
      6.8.3 문제 회피하기
6.9 특별한 테스트 도구
      6.9.1 벤치마크 도구
      6.9.2 Gypsy
      6.9.3 MySQL 테스트 프레임워크
6.10 유지 보수 도구
      6.10.1 MySQL 배포판에 제공되는 도구
      6.10.2 퍼코나 툴킷
      6.10.3 MySQL WB 유틸리티

      6.10.4 모니터링 도구

7장 좋은 습관
      7.1 백업
      7.1.1 백업 계획하기
      7.1.2 백업의 종류
      7.1.3 도구
7.2 필요한 정보 수집하기
      7.2.1 이 모든 정보가 의미하는 것은
7.3 테스트
7.4 예방
     7.4.1 권한
     7.4.2 환경
7.5 생각해볼 거리

부록 참고 자료
유용한 정보가 담겨 있는 참고 자료
버그와 지식 데이터베이스
온라인 포털
도움을 요청할 수 있는 곳

안드로이드 앱을 만들고 python을 이용해서 서버를 작성하고 있는 학생입니다. database로는 MySQL을 선택해서 진행하고있었습니다. 시중에 기본적으로 MySQL Syntax와 데이터 베이스 설계방법에 대한 책들은 많이나와있었는데 이번 책은 실전에서 눈으로 확인할 수 있는 성능 향상에 대해 나온 책이라서 더 기대가 되서 읽게‰營윱求

MySQL Troubleshooting은 기본적인 SQL을 가르쳐주는 책이 아니다. MySQL을 통해 프로젝트를 진행하는 초급 이상의 개발자에게 어떻게 하면 프로젝트 중 일어나는 MySQL 오류를 해결할 수 있을까 미리 이야기 해준다.

다른 그 흔한 MySQL 책들이 단순한 쿼리의 나열과 컴퓨터화면을 캡쳐한 것을 조합한 수준이라면, 이 책은 처음 부분에 기본적인 에러, DB 시스템을 느리게 하는 쿼리에 대해 이야기 하고, 3장에서 서버의 설정에 따라 달라지는 상황을 언급한다. 무엇이 잘못되어 있는지 완벽히 확신할 수 없다면 설정을 하나씩 추가하며 설정 파일을 테스트한다는 것. 이 말은 간단한 말이지만, 체계적으로 테스트하지 않았던 내게 도움이 되는 부분이었다.

이 책의 핵심은 6장인 "문제 해결 기법과 도구"라고 생각하는데, 물론 초급, 중급 개발자의 다루는 업무에 따라 이 책을 통해 학습할 부분이 다르다고 생각한다. 6장에서 문제 단순화하는 것에서 시작해서 문제 해결하는 단계, 그리고 테스트하고 유지보수 하는 것을 세세히 설명하는데 이 부분이 책을 읽는 이들에게 도움이 될 것 같다. 나에게는 MySQL 테스트 프레임워크 부분의 설명과 예제가 도움이 되었고 이를 프로젝트 관련해서 적용해 보려한다.

프로젝트 DBMS를 평소 Oracle로 작업하던 것을 MySQL로 바꿔 진행하게 되었다. MySQL에서는 잘못된 구문 이외에는 문제가 없을 것이라고 생각했고, 특별히 대비해야 할 것이 없다고 생각했었다. 하지만 이 책을 통해 DB권한문제에 있어서 평소 명확히 알지 못했던 부분을 알게 되었다. MySQL 테스트 방법과 테스트 및 유지보수도구를 정리한 부분이 이 책을 두고두고 찾아봐야 하는 이유라고 생각한다. 여러 번 강조해도 지나치지 않다.

우선 책의 저자가 오라클 사 MySQL 지원그룹의 버그 검증 팀에서 수석 기술 엔지니어로 근무하고 있다는 사실만으로도 이 책의 가치가 말 그대로 "넘사벽"으로 평가 되지 않을까. 저자가 오랜 기간동안 MySQL 전문가로 다른 엔지니어들을 도운 사례를 통해 설명하기 때문에 실제 프로젝트를 진행 중인 DB 담당자들이 여러 번 참고할 만한 책이라고 생각한다.

또 번역서임에도 불구하고 책 내용이 의미전달이 원활했던 것은 실제 개발을 오랜기간 동안 했던 강권학 개발자께서 했기 때문인 것 같다.

제목에서 바로 알 수 있듯이 MySQL에 관련된 트러블슈팅을 설명한 책이고, O’REILLY에서 나온 책을 번역한 역서이다. 대략적인 책의 구성은 Query 관련한 문제 해결 방안, 동시성 문제, 서버 옵션, 물리적인 환경, 이중화 관련 문제 순으로 설명이 되어 있고, 마지막 2장은 종합적으로 정리한 문제 해결 기법과 도구, 그리고 좋은 습관에 대해 설명하고 있다.
우선 책의 저자가 MySQL 초창기 시절부터 15년 이상 버그 검증 수석 엔지니어로 활동해온 베테랑이라서 Troubleshooting을 설명하는 내용에서 깊이가 느껴진다. 그리고, 이런 번역서는 번역이 책의 품질의 50%를 좌우하는데, 다행히 번역자가 IT업계에서 일하면서 영어에도 능통해 전체적인 내용이 매끄럽게 흘러가는 게 큰 장점이다. 또한 무엇보다도 책의 내용이 세세한 기술적인 문제 해결에만 치우치지 않고, 큰 관점에서의 문제 해결 방안도 설명해주는게 무척 마음에 들었다. 예를 들어, MySQL 관련한 문제를 마주하게 되었을 때 전체적인 관점에서 문제해결 계획을 세우는 방법을 알려주었고, 또한 문제 해결을 위한 좋은 습관을 책 말미에 가르쳐 주고 있다. 이런 큰 그림을 그리고 좋은 습관은 비단 MySQL뿐만 아니라 다른 DBMS에 대한 Troubleshooting에도 적용할 수 있어서 IT에 처음 입문하는 초급 엔지니어에게도 무척 유용할 것이라는 생각이 들었다.
개인적으로 최근 지원하는 프로젝트가 MySQL을 사용하는데, 나로서는 MySQL을 실무에서는 처음 접하는 상태였다. 다른 상용 DBMS들과 큰 차이가 별로 없을 테니 금방 익숙해질거라 스스로를 자위하던 차에 이 책을 만났다. 책을 다 읽고 나니 역시 총론에서는 다른 DBMS와 큰 차이가 없지만, 개론으로 들어가면 많은 차이가 있어서 공부를 많이 해야겠다는 생각이 들었다. 가뜩이나 Open Source DBMS에 대해서는 지원하는 엔지니어도 부족하고 정보도 꽤 많이 부족한데 이런 문제 해결 가이드가 나와서 참으로 반가웠다. 책상머리에 두고 필요할 때마다 자주 참고할만한 좋은 책이라 생각한다.

유명한 O"REILLY MySQL Troubleshooting 을 한국어로 읽을 수 있는 기회를 잡았다. 300페이지 가량의 책이지만 내용은 결코 만만하지 않다. 이 책에 부제를 넣는다면 거창해 보일수도 있는 "MySQL DBA로 가는 길"이라고 하고 싶다.

애플리케이션 개발자들이 RDBMS의 적용을 쉽게 생각하고, 적용해 버리고, 결국 DBA에 대한 지식이 없어 장애를 해결하지 못하여 실패하는 사례들을 보아 왔다. RDBMS는 생명체와 같다. 애플리케이션이 RDBMS를 지원하는데서 끝나지 않는다. RDBMS는 잘 보살펴 주지 않으면 게으름을 피우거나, 엉뚱한 작업을 하거나 심하면 생명이 꺼져 버리기도 한다.

이 책은 이미 SQL에 대한 기본 지식이 있는 독자를 대상으로 한다. SQL 문법, 정규화 등은 알고 있어야 한다.

이 책에서 MySQL을 사용하는 프로젝트의 개발, 테스트, 운영 과정에서 발생하는 대부분의 지식을 담고 있다. 손상으로부터의 복구, 운영 정보 수집, 에러 추적, 장애의 해결, 성능 튜닝, 테스트, 샌드박스 사용법, 설정, 보조 서버 운영, 백업, 플러그인의 구조와 차이점, MySQL이 가진 버그를 확인하고 회피하는 방법, MySQL 운영을 돕는 도구 등에 대한 지식을 얻을 수 있었다.

무엇보다 필자가 MySQL 개발과 테스트에 참여한 자신과 동료들의 경험을 살려 MySQL 내부 동작을 설명을 하여 이해를 쉽게 도와주는 점이 큰 장점이다.

이 책의 "원서"에 따른 내용이겠지만, "MySQL 운영을 돕는 서드파트 도구"들에 소개가 반갑긴 하지만 사용법과 예제가 없는 점이 아쉽다. 이부분은 따로 검색해서 봐야 한다.

이 책은 MySQL을 통해 응용 소프트웨어를 개발하려는 개발자, 개발 사업을 추진하는 책임자급 엔지니어, MySQL 전문가가 되고 싶은 입문자들, 특히 RDBMS를 구성, 운영을 해야 하는 IT기업 오너들에게 권한다.

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
MySQL Troubleshooting : 쿼리 문제, 원인을 알면 해결은 쉽다
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
MySQL Troubleshooting : 쿼리 문제, 원인을 알면 해결은 쉽다
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
MySQL Troubleshooting : 쿼리 문제, 원인을 알면 해결은 쉽다
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실