데이터베이스 워크로드를 분류하는 두 가지 기본 축이다. 각 워크로드의 특성이 달라서 서로 다른 데이터베이스 설계가 필요하다.
OLTP (Online Transaction Processing)
주문 처리, 사용자 등록, 결제 등 짧고 빈번한 읽기/쓰기 트랜잭션을 처리한다. 소수의 행을 빠르게 조회하거나 수정하는 것이 핵심이다. 행 기반(row-oriented) 스토리지가 적합하다 — 한 행의 모든 컬럼을 함께 읽어야 하므로.
OLAP (Online Analytical Processing)
월별 매출 집계, 트렌드 분석 등 대량 데이터를 스캔하는 분석 쿼리를 처리한다. 특정 컬럼만 대량으로 읽는 패턴이 많아 열형(columnar) 스토리지가 유리하다 — 필요한 컬럼만 읽어서 I/O를 줄이고, 같은 타입의 데이터가 연속 저장되어 압축 효율도 높다.
왜 하나의 DB로 안 되는가
OLTP에 최적화된 행 스토리지로 분석 쿼리를 돌리면 불필요한 컬럼까지 전부 읽어야 하고, 반대로 열형 스토리지는 단건 트랜잭션에서 느리다. 이 때문에 대부분의 시스템은 두 워크로드를 분리한다.
관련 문서
- DuckDB — 인프로세스 OLAP 엔진
- ClickHouse — 대규모 OLAP 서버
- PostgreSQL — 기본적으로 OLTP이지만 Hydra Columnar 확장으로 OLAP도 가능