PostgreSQL(18버전) 의 내부 동작 원리를 공식 문서를 참고해 정리한 시리즈다. 목차 순서로 정리하지만 중간에 기본 개념이 생략된 부분이 있을 수 있다.
- PostgreSQL 18버전 공식 문서 링크: https://www.postgresql.org/docs/18/index.html
시리즈 목차
각 편은 앞 편의 개념을 회수하며 이어진다.
- 8KB 페이지와 Shared Buffers
PostgreSQL의 모든 데이터가 저장되는 단위인 8KB 페이지의 내부 구조, 튜플 헤더, ctid, 그리고 메모리 캐시 역할을 하는 shared buffers. - MVCC와 격리 수준
PostgreSQL이 행을 덮어쓰지 않고 여러 버전을 만드는 이유. xmin/xmax 기반 가시성 판단, 4가지 격리 수준이 막는 이상현상, 쓰기 스큐. - Locking
MVCC만으로 풀리지 않는 쓰기-쓰기 충돌과 DDL 조율. 테이블 락 8단계, 행 락, 데드락, 운영에서 자주 만나는 lock wait. - VACUUM
MVCC가 남기는 dead tuple을 누가 어떻게 치우는가. Visibility Map, autovacuum, 트랜잭션 ID wraparound 방지. - WAL과 Checkpoint
크래시가 나도 데이터가 살아남는 메커니즘. Write-Ahead Logging의 원칙, full page writes, 체크포인트, synchronous_commit. - 인덱스
B-tree, GiST, GIN, BRIN의 사용처. PostgreSQL의 모든 인덱스가 보조 인덱스라는 것의 의미, Index Only Scan과 Visibility Map의 관계. - Scan과 Optimizer
Sequential / Index / Index Only / Bitmap Scan의 차이. 비용 기반 경로 선택, 통계 정보, EXPLAIN 읽는 법, 자주 만나는 함정들. - TOAST
한 행이 8KB 페이지를 넘는 큰 값을 PostgreSQL이 어떻게 처리하는가. 4가지 storage 모드, 압축 알고리즘(pglz vs lz4), 1GB 컬럼 한계의 정체.
관련 링크
- Postgres 블로그: Crunchy Data Blog, pganalyze
- Postgres필독 가이드: Use The Index, Luke (인덱스의 모든 것)
- Postgres 안티 패턴: PostgreSQL Wiki - Don't Do This (진짜 하지 말아야 할 것들)
'데이터베이스 > PostgreSQL 내부 구조' 카테고리의 다른 글
| PostgreSQL 내부구조 (6) ㅡ Index (0) | 2026.07.18 |
|---|---|
| PostgreSQL 내부 구조 (5) — WAL과 Checkpoint, 장애 복구의 핵심 (0) | 2026.04.18 |
| PostgreSQL 내부 구조 (4) — VACUUM, 옛 버전은 누가 치우는가 (0) | 2026.04.18 |
| PostgreSQL 내부 구조 (3) — Locking, 동시성의 또 다른 축 (1) | 2026.04.18 |
| PostgreSQL 내부 구조 (2) — MVCC와 격리 수준 (1) | 2026.04.18 |
| PostgreSQL 내부 구조 (1) — 페이지와 Shared Buffers (1) | 2026.04.18 |
| PostgreSQL 기본 (0) — 연결과 프로세스 구조 (0) | 2026.04.18 |