PostgreSQL 9.6 성능 이야기

기타 > 과학/IT  by 김시연,최두원
27,000

배송일 : 영업일 기준 2-8일 내로 배송됩니다.

환불규정: 주문 후 인쇄되므로 배송이 준비된 후에는 환불이 불가능합니다

찜 횟수 0
분야
기타 > 과학/IT
작가
김시연,최두원
출판형태
종이책
인쇄컬러
표지-컬러, 내지-흑백
판형
B5
페이지수
332p
출판사
시연아카데미
ISBN
9791196033903
출판일
2017.03.02

저자 소개


김시연
DBMS 연구와 지식 공유에 힘쓰는 20년 차 엔지니어이다.

‘PostgreSQL 9.6 성능 이야기’를 시작으로 다양한 ‘이야기’ 시리즈를 계획하고 있다. 서적뿐만 아니라 온, 오프라인 세미나, 블로그 등 다양한 경로를 통해 독자와의 만남을 준비하고 있다.



최두원
필드에서 활약 중인 19년 차 엔지니어이다.

지금까지 ORACLE DBMS 튜닝 및 DBA 역할을 수행해왔고, 앞으로는 EDB 관련 업무를 수행할 예정이다. C 개발자 출신답게 PostgreSQL을 소스 레벨에서 깊이 있게 연구하는 걸 좋아한다.

번역자 소개 (번역서인 경우 입력해주세요.)

목차

■ 1장. 아키텍처 개요

PostgreSQL 아키텍처
____Shared Memory
____프로세스 유형
____Postmaster 프로세스
____Background 프로세스
____Backend 프로세스
____데이터베이스 구조
VACUUM이란?
ORACLE과 POSTGRESQL의 차이점
____MVCC 모델의 차이점
____Shared Pool 존재 여부
요약

■ 2장. Shared Buffer 동작 원리

성능 향상을 위한 Shared Buffer의 3가지 목표
Shared Buffer 구조
____해시 테이블 자세히 살펴보기
____해시 엘리먼트 자세히 살펴보기
____버퍼 디스크립터 자세히 살펴보기
____Spin 락과 LW 락
Shared Buffer에서 버퍼 읽기
____Shared Buffer 내에 있는 블록을 읽는 경우
____DISK Read가 발생하는 경우
Buffer Replacement를 위한 Clock Sweep 알고리즘
____Clock Sweep 알고리즘 설명
____Clock Sweep 알고리즘 수행 절차
____공정한 경쟁이란?
Bulk IO 처리를 위한 IO 전략과 Ring Buffer
____IO 전략이란?
____Ring Buffer 살펴보기
요약

■ 3장. QUERY OPTIMIZER 동작 원리

CBO (COST BASED OPTIMIZER) 개요
____COST란?
____COST 계산 방식
통계 정보
____통계 정보 생성 단위
____통계 정보 수동 생성
____통계 정보 자동 생성
____통계 정보 확인
____통계 정보 제어
Explain 도구
____Explain 사용 모드
____Explain 결과 분석 방법
____실행 계획 읽는 방법
쿼리 파싱
____Plan Caching 개요
____Prepare Statement 처리 절차
____ORACLE Bind Peeking에 대한 고찰
____PostgreSQL Bind Peeking에 대한 고찰
____Literal SQL과 Bind SQL 성능 비교
액세스 방법
____Seq Scan 방식
____Index Scan 방식
____Bitmap Index Scan 방식
____Index Only Scan 방식
____Tid Scan 방식
____액세스 방식 제어하기
조인 방법
____Nested Loop 조인
____해시 조인
Outer 조인
____NL Outer 조인
____해시 Outer 조인
쿼리 재작성 (QUERY REWRITE)
____서브쿼리 Collapse
____View Merging과 JPPD (Join Predicate Push-Down)
____LATERAL 인라인 뷰
PG_HINT_PLAN을 이용한 튜닝 방안
____PG_HINT_PLAN 설치
____PG_HINT_PLAN 동작원리와 힌트 목록
____PG_HINT_PLAN 예제
히스토그램
____히스토그램 개요
____히스토그램 생성
____Height-Balanced 히스토그램
____Frequency 히스토그램
____Hybrid 히스토그램
요약

■ 4장. VACUUM 동작 원리

PostgreSQL MVCC 모델
____MVCC란?
____PostgreSQL MVCC의 특징
____4바이트 정수로 XID를 사용할 때의 문제점은?
____Frozen XID란?
____중간요약
Vacuum
____Vacuum 기본기 다지기
____Vacuum의 효과
____Vacuum과 락
____Vacuum과 Redo
____Age란?
____vacuum_freeze_min_age 파라미터
____Quiz를 통해 이해하는 Vacuum의 원리
Auovacuum
____Auovacuum 설정 방법
____Autovacuum을 완전히 off 시킬 수 있을까?
____autovacuum_freeze_max_age 파라미터
____Quiz를 통해 이해하는 Autovacuum의 원리
Visibility Map이란
____Visibility Map이란?
____ALL_FROZEN 비트로 인한 Vacuum 성능 향상
HOT (HEAP ONLY TUPLE)
____HOT 탄생 배경
____HOT 컨셉
____HOT 동작 원리
____HOT 성능 테스트
요약

■ 5장. Partial INDEX & BRIN
Partial 인덱스
____Partial 인덱스의 용도
____Partial 인덱스의 예
BRIN (BLOCK RANGE INDEX)
____BRIN 개념
____BRIN에 대한 궁금증
요약

■ 6장. Partition 동작 원리

파티션 기본기 다지기
____생성 방식
____파티션 Pruning
____파티션 유형 및 Pruning 테스트
____Range 파티션
____List 파티션
____해시 파티션
____서브 파티션
파티션 인덱스
파티션 입력 성능 향상을 위한 Tip
요약

■ 7장. Parallel Processing

Parallel 처리 기본기 다지기
____Parallel 처리 관련 파라미터
____Worker 프로세스 개수 산정 방식
____Parallel 프로세스 모델
PARALLEL 처리 예제
____Parallel 스캔
____Parallel 처리 모니터링 방법
____Parallel Group By
____Parallel 해시 조인
요약

■ INDEX

도서 정보

■ 어떤 내용을 다뤘나?

이 책은 PostgreSQL 성능을 다룬 책입니다.
성능을 논하기 위해서는 기본 구조, Shared Buffer 동작 원리, IO 처리 방식, 옵티마이저 동작 원리, 통계 정보, Explain 분석 방법, 액세스 방법, 조인 방법, 쿼리 재작성, 힌트, 히스토그램, 인덱스, 파티션, 병렬 처리 등 다양한 내용을 알아야 합니다.
이 책은 이와 같은 내용과 더불어 PostgreSQL MVCC 특징 때문에 필요한 Vacuum, HOT를 설명합니다. 그리고 BRIN에 대한 매우 실용적인 내용을 다루고 있습니다.

■ 책에서 다루지 않는 내용은?

WAL, 백업, 복구, 복제는 다루지 않았습니다. 이 책에서 다루기에는 성격이 조금 달라서입니다.

■ 누가 읽으면 좋은가요?

PostgreSQL을 2~3년 정도 경험해본 분들과 타 DBMS에 익숙하면서 PostgreSQL를 시작하는 단계인 분들이 읽으면 아주 좋습니다. 그리고 동작 원리에 관심 있는 분들도 읽으면 큰 도움이 될 것입니다.
읽으면 안 되는 분들도 있나요?
DBMS 입문자와 PostgreSQL 전문가는 읽는 것을 권하지 않습니다. 입문자가 읽기에는 너무 어렵습니다. 반면, 전문가가 읽기에는 너무 평이합니다. 이 책의 난이도는 ‘중’ 정도입니다.

■ 책을 쓰면서 가장 신경 쓴 부분은?

연구의 정확성을 위해 다양한 테스트와 소스 분석을 병행했습니다.
현학적인 지식이 아닌 실용적인 지식을 전달하기 위해 노력했습니다.
독자들이 쉽게 이해할 수 있도록, 60 여 개의 그림으로 동작 원리를 설명했습니다.
모든 예제는 스크립트를 이용해서 재현 가능합니다.
십 여차례의 문장 교정을 통해 조금이나마 더 편하게 읽을 수 있도록 노력했습니다.
부끄럽지 않은 책을 만들려고 최선을 다했습니다.

■ 책을 읽는 방법

책은 1장부터 순서대로 읽는 게 좋습니다.
1장은 아주 기본적인 내용입니다. PostgreSQL에 익숙한 분들은 건너뛰셔도 됩니다.
2장의 소스 분석 부분은 관심 있는 분들만 보길 권합니다. 해당 내용을 자세히 몰라도 나머지 부분을 읽는 데 큰 문제는 없습니다. 다만, 소스 설명 중간중간 나오는 용어는 숙지해야 합니다.
테스트 환경 구성을 위한 스크립트는 http://siyeonacademy.wordpress.com에서 다운로드 할 수 있습니다.