데이터베이스를 "SQL 쓰는 곳"으로만 쓰면 평생 주니어다. B-Tree·LSM-Tree·Hash Index의 내부 구조, 쿼리 플래너가 쿼리를 어떻게 실행으로 바꾸는지, 트랜잭션 격리 수준 4단계, 샤딩·파티셔닝 전략, PostgreSQL의 2025년 독주 현상, 그리고 Vector DB(pgvector·Qdrant·Weaviate)까지 — DB의 내부를 회로도 수준으로 뜯는 한 편. Season 2의 열세 번째.
SELECT 한 줄이 디스크에 닿을 때까지 무슨 일이 벌어지는가. B-Tree 인덱스가 왜 로그 시간인지, WAL이 왜 쓰기 성능의 비밀인지, MVCC가 어떻게 잠금 없이 읽기를 가능하게 하는지, 쿼리 플래너는 어떻게 실행 계획을 고르는지, 그리고 격리 수준의 미묘한 함정까지 — 40년 RDBMS 진화사와 함께 엔진의 속살을 파헤친다.
왜 PostgreSQL과 RocksDB는 다른 자료구조를 택했나. WAL이 없는 DB가 없는 이유. MVCC의 xmin/xmax, Vacuum이 느려지는 진짜 원인, BRIN/GIN/GiST/HNSW 인덱스, Query Planner가 같은 쿼리를 달리 실행하는 논리, Replication의 논리 vs 물리. '왜 DB는 느려지는가'에 대한 완전한 답.
PostgreSQL 내부의 모든 것 — 프로세스 아키텍처 (postmaster, backend, autovacuum, checkpointer, walwriter), 페이지와 heap tuple의 바이트 레이아웃, MVCC와 xmin/xmax/ctid, WAL과 checkpoint의 상호작용, Vacuum과 Visibility Map과 HOT update, B-tree와 GIN/GiST/BRIN 인덱스, Query Planner의 비용 추정과 Genetic Query Optimizer, shared_buffers와 OS 페이지 캐시의 이중 캐싱, Replication과 logical decoding까지 1,500줄로 정리한 Postgres 딥다이브.