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 딥다이브.
전 세계에서 가장 많이 배포된 소프트웨어이자 1조 개 이상의 데이터베이스로 활동 중인 SQLite. 이 글은 SQLite의 내부를 처음부터 해부합니다. D. Richard Hipp의 2000년 설계부터 현재까지의 진화, B-tree 기반 페이지 저장, Rollback Journal과 WAL 모드의 차이, Pager와 Page Cache, VFS(Virtual Filesystem) 추상화, Virtual Table로 확장, Query Planner와 bytecode VM, FTS5 전문 검색, R-tree 공간 인덱스, 그리고 "가장 신뢰할 수 있는 소프트웨어"가 된 광적인 테스트 문화까지 — 가장 성공적인 임베디드 데이터베이스를 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.
DB 내부 구조의 모든 것! 스토리지 엔진(InnoDB/RocksDB/WiredTiger), B-Tree vs LSM-Tree, Buffer Pool, WAL(Write-Ahead Log), MVCC(다중 버전 동시성 제어), 쿼리 옵티마이저, 트랜잭션 격리 수준, 락(Lock) 메커니즘.