행 기반 DB vs 열 기반 DB

데이터를 물리적으로 행 단위로 저장하는지, 열 단위로 저장하는지에 따라 나뉘는 데이터베이스 저장 방식입니다.

행 기반 데이터베이스 (Row-oriented)

같은 행에 속한 컬럼 값들을 디스크에 연속으로 저장합니다. PostgreSQL, MySQL 등 일반적인 RDB가 대표적이며, 행 단위 읽기·쓰기(INSERT, UPDATE)에 최적화돼 있어 트랜잭션 처리(OLTP)에 적합합니다.

[Atom, 2024-01-23] [Prin, 2024-02-01] [Gosmdochee, 2024-02-03]

열 기반 데이터베이스 (Column-oriented)

같은 컬럼에 속한 값들을 디스크에 연속으로 저장합니다. BigQuery, Redshift, Snowflake가 대표적이며, 데이터 분석(OLAP)에 주로 사용됩니다.

[Atom, Prin, Gosmdochee] [2024-01-23, 2024-02-01, 2024-02-03]

사용 예

구분저장 단위최적화 대상대표 제품
행 기반행트랜잭션 처리(OLTP)MySQL, PostgreSQL
열 기반열대용량 집계·분석(OLAP)BigQuery, Redshift, Snowflake

주의사항

열 기반 데이터베이스는 NoSQL의 Column Family DB(Cassandra 등)와는 다른 개념입니다. Column Family DB는 로우 키 기반으로 컬럼을 그룹화해 저장하는 비관계형 데이터 모델이고, 여기서 다루는 열 기반 데이터베이스는 관계형/비정형 데이터를 물리적으로 컬럼 단위로 저장하는 스토리지 엔진 방식입니다.

핵심 정리

행 기반은 행 단위 CRUD가 잦은 서비스성 트랜잭션 처리에, 열 기반은 특정 컬럼만 읽어 대량 데이터를 집계·분석하는 워크로드에 적합합니다.

→ 열 기반 DB와 행 기반 DB의 차이점은 무엇인가요?

CSLOG에서 보기