안드로이드 앱을 만들고 python을 이용해서 서버를 작성하고 있는 학생입니다. database로는 MySQL을 선택해서 진행하고있었습니다. 시중에 기본적으로 MySQL Syntax와 데이터 베이스 설계방법에 대한 책들은 많이나와있었는데 이번 책은 실전에서 눈으로 확인할 수 있는 성능 향상에 대해 나온 책이라서 더 기대가 되서 읽게營윱求
버그, 성능 저하, 치명적 오류, 데이터 훼손, 엉뚱한 데이터가 출력되는 문제 등은 데이터베이스 관리자나 DBA라면 늘 겪는 일이다. 이런 문제 해결의 지름길은 원인 분석이다. 원인만 알면 문제는 금방 해결할 수 있다. 이 책은 원인 분석이라는 흐름 속에서 놓치기 쉬운 간단한 문제 해결법부터, 문제 예방을 위한 MySQL 환경 설정법, 서드파티 솔루션 문제 해결 등 MySQL에서 발생하는 여러 가지 장애를 해결하는 방법을 풍부한 예제로 설명한다. 빅데이터가 주목받으면서 NoSQL 데이터베이스에 관한 관심이 높아졌지만 MySQL은 여전히 데이터베이스 관리와 분석의 기본이다. 이 책과 함께 데이터베이스 전문가로 도약해보자.
특징과 장점
어떤 독자를 위한 책인가?
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 생각해볼 거리
부록 참고 자료
유용한 정보가 담겨 있는 참고 자료
버그와 지식 데이터베이스
온라인 포털
도움을 요청할 수 있는 곳
책
Head First PHP & MySQL: 효과적이고 생동감 넘치는 웹 애플리케이션 만들기
린 베일리 , 마이클 모리슨 공저