컴퓨터 과학 및 엔지니어링/데이터베이스

임경석 , 김철환 , 박관규 , 김규민, 막힘없이 PostgreSQL - PostgreSQL 성능관리를 위한 핵심 매커니즘, 엑셈

booksworld 2025. 3. 2. 01:00

 

#광고 - 링크로 구매 시 글쓴이에게 소정의 수수료가 제공됩니다.

 

 

"막힘없이 PostgreSQL"은 데이터베이스 전문가 임경석 저자가 집필한 책으로, PostgreSQL의 다양한 기능과 성능 관리에 대한 깊이 있는 내용을 담고 있습니다. 이 책은 PostgreSQL을 처음 접하는 초급자부터 중급자까지 모두에게 유용한 정보를 제공합니다.

책의 주요 내용은 PostgreSQL의 아키텍처, 트랜잭션 처리, MVCC, Vacuum, 락(Lock), SQL 실행 계획 등으로 구성되어 있으며, 각 주제는 이론뿐만 아니라 실습 예제와 함께 설명되어 독자가 실제로 체험할 수 있도록 배려하였습니다. 특히, 복잡한 기술적 내용을 쉽게 이해할 수 있도록 다양한 그림과 시각 자료를 활용하여 독자들의 이해를 돕고 있습니다.

PostgreSQL은 오픈소스 데이터베이스로서, 성능 분석과 튜닝을 위한 강력한 기능을 제공합니다. 이 책은 이러한 기능을 깊이 있게 다루어 독자들이 PostgreSQL의 내부 작동 원리를 명확히 이해할 수 있도록 구성되었습니다. 또한, 모든 테스트는 PostgreSQL 14 버전 이상에서 수행할 수 있도록 설정되어 있어 최신 버전의 기능을 반영하고 있습니다.

저자는 데이터베이스 튜닝 컨설팅 분야에서 다년간의 경험을 쌓아온 전문가로, 포스코, 한국거래소, 삼성전자 등 다양한 고객사를 대상으로 성능 분석을 수행해왔습니다. 이러한 경험을 바탕으로 독자들에게 실질적인 인사이트를 제공하고자 하였습니다.

"막힘없이 PostgreSQL"은 데이터베이스 관리와 성능 최적화에 관심 있는 모든 이들에게 필수적인 지침서가 될 것입니다. 이 책을 통해 PostgreSQL의 복잡한 문제들을 해결하는 데 필요한 이해와 기술을 쌓을 수 있을 것입니다. 데이터베이스의 성능을 극대화하고자 하는 독자들에게 강력히 추천합니다.

 

 

 

목차


CHAPTER 01 PostgreSQL 아키텍처
1. 주요 프로세스
1.1 Postmaster 프로세스
1.2 Backend 프로세스
1.3 Background 프로세스

2. 메모리
2.1 공유 메모리(Shared Memory)
2.2 로컬 메모리(Local Memory)

3. PostgreSQL 구조
3.1 논리 구조(Logical Structure)
3.2 물리 구조(Physical Structure)

4. Shared Buffer
4.1 Shared Buffer 구성 요소
4.2 Shared Buffer에서 데이터 읽기
4.3 Clock Sweep
4.4 PostgreSQL IO 전략

5. WAL(Write-Ahead Log)
5.1 WAL 세그먼트 파일
5.2 체크포인트(Checkpoint)
5.3 WAL 세그먼트 파일관리
5.4 WAL 레코드 기록하기
5.5 WAL 파일을 이용한 데이터 복구


CHAPTER 02 트랜잭션과 MVCC
1. 트랜잭션 격리 수준(Transaction Isolation Level)
1.1 PostgreSQL에서의 격리 수준

2. 데이터 저장 구조
2.1 페이지 구조
2.2 Transaction ID
2.3 튜플 구조
2.4 튜플 버전
2.5 인덱스와 튜플

3. 스냅샷(Snapshot)
3.1 스냅샷이란?
3.2 스냅샷과 튜플 가시성
3.3 스냅샷과 데이터베이스 Horizon
3.4 Exporting Snapshot
3.5 Snapshot too old

4. 단일 페이지 정리와 HOT 업데이트
4.1 Fillfactor
4.2 단일 페이지 정리(Single Page Cleanup)
4.3 HOT(Heap Only Tuple) Update

5. MVCC(Multi Version Concurrency Control)
5.1 MVCC란?
5.2 XID 순환 구조와 Frozen XID
5.3 Age

6. Vacuum and Autovacuum
6.1 Vacuum
6.2 Autovacuum


CHAPTER 03 락(LOCK)
1. 객체 레벨 락(Object Level Lock)
1.1 객체 타입
1.2 객체 락 모드

2. 행 레벨 락(Row Level Lock)
2.1 행 레벨 락 모드
2.2 다중 트랜잭션(Multitransactions)
2.3 튜플 락 대기
2.4 Dead Lock

3. 메모리 레벨 락(Memory Level Lock)
3.1 Light-Weight Lock(LWLocks)
3.2 Spinlocks
3.3 Buffer Pin Lock
3.4 WAL Buffer Lock
3.5 메모리 락 모니터링


CHAPTER 04 SQL Execution
1. Cost Based Optimizer
1.1 CBO Cost

2. PostgreSQL 통계정보
2.1 수동 통계정보 수집
2.2 통계정보 관리

3. 실행 계획
3.1 실행계획 추출 방법
3.2 실행계획 분석

4. SQL처리 과정
4.1 SQL 처리 프로세스
4.2 Prepare Statement

5. 스캔 방법(Scan Method)
5.1 Sequential Scan
5.2 Index Scan
5.3 Bitmap Index Scan
5.4 Index Only Scan
5.5 Covering Index

6. 조인 방법(Join Method)
6.1 Nested Loop Join
6.2 Hash Join
6.3 Sort-Merge Join


Appendix
1. 격리 수준에 따른 이상 현상
1.1 Read Committed
1.2 Repeatable Read
1.3 Serializable

2. 테이블 팽창(Bloating) 모니터링

3. SQL 모니터링
3.1 pg_stat_statements
3.2 pg_stat_monitor

 

 

 

- 교보문고: https://bitl.bz/kxPyev

- 쿠팡: https://bitl.bz/AakrwD

- Yes24: https://bitl.bz/W2hUP2