계산대와 회계사의 일
식당의 계산대는 하루 종일 주문을 하나씩 빠르게 처리해. 작고 짧은 일을 아주 자주 수행하는 이 모양이 OLTP, 온라인 트랜잭션 처리야. 회계사는 지난달 영수증을 한꺼번에 훑으며 매출 흐름을 찾아. 오래 걸리는 큰 분석을 드물게 수행하는 이 모양이 OLAP, 온라인 분석 처리야.
서로 다른 작업에는 다른 최적화가 필요해
| OLTP | OLAP |
|---|---|
| 동시에 쓰는 사람이 많음 | 분석하는 사람이 적음 |
| 짧은 질의, 보통 ms 단위 | 긴 질의, 수 초에서 수 분 |
| 읽기와 쓰기가 섞임 | 대부분 읽기 |
| 현재 상태가 중요함 | 과거 흐름이 중요함 |
| 행 지향 저장 | 열 지향 저장 |
| 예: 주문 접수 | 예: 분기·지역별 매출 |
PostgreSQL이 맡을 수 있는 범위
PostgreSQL은 OLTP에 먼저 맞춰진 데이터베이스고 그 일을 아주 잘해. 수백만 행에서 1억대 초반 행을 다루는 중간 규모 OLAP도 윈도 함수, 구체화된 뷰, 병렬 질의, JIT로 감당할 수 있어. 수십억 행을 계속 훑는 웨어하우스급 분석이라면 데이터를 ClickHouse·Snowflake·BigQuery 같은 열 지향 엔진으로 복제하거나, Citus 확장 기능으로 PostgreSQL에 열 저장과 분산 처리를 더하는 쪽을 검토해.