Row Oriented DB vs Column Oriented DB

YoungHo-Cha·2022년 12월 24일
2

Cassandra

목록 보기
4/4

최근에 면접을 하면서 한번도 생각해보지 못한 질문을 받았다. 오늘은 그 질문에 대해서 다루어 볼 예정이다.

목차

  • DataBase에서 파일을 어떻게 저장할까?
  • Row Oriented DB란?
  • Column Oriented DB란?

DataBase에서 파일을 어떻게 저장할까?

단 한번도 생각해보지 못한 내용이다.

이제부터 한번 알아보자.

Row Oriented DB란?

Row Oriented DB는 말 그대로 "행 기반 데이터 베이스"를 말한다.

데이터베이스에 저장되는 데이터를 행 기반으로 저장을 한다.

다음 그림을 보자.

위 그림은 다음과 같이 구성되어 있다.

  1. row를 기준으로 해당 row에 대한 column 값들이 나란히 저장된다.
  2. 각 column은 설정한 스키마에 따라 저장된다.

데이터베이스는 위와같이 표와 같은 방식으로 저장이 되어있지 않다.

데이터베이스는 다음 그림과 같이 row별로 저장을 한다.

조금 더 이해하기 쉽도록 구체적인 테이블을 보자!

위와 같이 데이터가 저장되어 있으면 실제 파일에는 다음과 같이 저장된다.

Row Oriented DB 장단점

장점으로는 어떤 것이 있을까?

  • 어떠한 row를 추가 및 삭제할 때 아주 간편하다.
    • 위의 데이터에서 연속하여 이어붙이면 그만이다.
    • 위의 데이터에서 해당 row만큼의 데이터만 삭제해주면 그만이다.
  • 행 단위로 데이터를 조회할 때 빠른 성능을 보장한다.

단점으로는 어떤 것이 있을까?

  • 특정 필드 데이터 집합을 조회할 때 성능이 좋지 못하다.

Column Oriented DB란?

Column Oriented DB는 말 그대로 "열 기반 데이터 베이스"를 말한다.

다음 그림을 보자.

위의 "Row Oriented DB"와는 다르게 데이터 별로 저장을 하는 것을 볼 수 있다.

Column Oriented DB 장단점

장점으로는 다음과 같다.

  • 특정 데이터 집합을 얻을 때 성능이 좋다.
  • 특정 데이터를 조회할 때 추가적인 메모리의 할당없이 작업을 수행할 수 있다.

단점으로는 다음과 같다.

  • 데이터 추가 작업을 수행할 때, 각 데이터의 마지막 위치를 확인해야하는 작업이 필요하다.

생태계 살펴보기

Row Oriented DB

  • MySQL
  • Postgres

Column Oriented DB

  • RedShift
  • Big-Query
  • Snowflake
  • Cassandra
  • Hbase
profile
관심많은 영호입니다. 궁금한 거 있으시면 다음 익명 카톡으로 말씀해주시면 가능한 도와드리겠습니다! https://open.kakao.com/o/sE6T84kf

0개의 댓글