[MongoDB] 개요

soyeon·2023년 5월 24일
post-thumbnail

기존의 관계형 데이터 베이스의 문제점을 보완하고자 데이버 베이스를 개발

몽고디비를 사용하는 이유

  • Schema가 자유롭다.
  • HA와 Scale-Out Solution을 자체적으로 지원해서 확장이 쉽다.
  • Secondray Index를 지원하는 NoSQL이다.
  • 다영한 종류의 Index를 제공한다. -> 다양한 비즈니스 요구사항에 대응하기 적합하다.
  • 응답 속도가 빠르다.
  • 배우기 쉽고 간편하게 개발이 가능하다.

SQL vs NoSQL

구조

관계형 데이터 베이스(RDB)는 엑셀과 같이 로우와 컬럼으로 테이블 형태로 데이터를 저장한다.
장점

  • 데이터의 중복을 방지할 수 있다.
  • Join의 성능이 좋다.
  • 복잡하고 다양한 쿼리가 가능하다.
  • 잘못된 입력을 방지할 수 있다.

단점

  • 하나의 레코드를 확인하기 위해 여러 테이블을 Join하여 가시성이 떨어진다.
  • 스키마가 엄격해서 변경에 대한 공수가 크다.

NoSQL
관계형 데이터 베이스를 대체하는 용도가 아니라 관계형 데이터 베이스와 함께 사용되며 요구사항에 맞는 모델을 선택하여 사용된다.
이번에 공부해볼 몽고디비는 문서 저장소에 해당한다.
참고

장점

  • 데이터 접근성과 가시성이 좋다.
  • Join없이 조회가 가능해서 응답 속도가 일반적으로 빠르다.
  • 스키마 변경에 공수가 적다.
  • 스키마가 유연해서 데이터 모델을 App의 요구사항에 맞게 데이터를 수용할 수 있다.
  • HA와 Sharding에 대한 솔루션을 자체적으로 지원하고 있어 Scale-Out이 간편하다.
  • 확장 시, Application의 변경사항이 없다.

단점

  • 데이터의 중복이 발생한다.
  • 스키마가 자유롭지만, 스키마 설계를 잘해야 성능 저하를 피할 수 있다.
profile
사부작 사부작

0개의 댓글