ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 99클럽 코테 스터디 29일차 TIL / MongoDB, Postgres, MariaDB 차이점
    Study(진행중)/항해99 2024. 8. 19. 21:11

    오늘의 학습 키워드

       - CS

    공부한 내용 본인의 언어로 정리하기

    MongoDB / Postgres, MariaDB 차이

     

    요약

    • MongoDB
      NoSQL 문서 지향 데이터베이스로, 유연한 스키마와 수평적 확장을 지원하며, 비정형 데이터 처리에 적합
    • MariaDB
      MySQL의 포크 버전인 관계형 데이터베이스로, 고정된 스키마와 ACID 트랜잭션을 지원하며, 웹 애플리케이션이나 전통적인 관계형 데이터 관리에 적합
    • PostgreSQL
      고급 기능을 갖춘 관계형 데이터베이스로, ACID 트랜잭션, 복잡한 쿼리 처리, 다양한 확장 기능 등을 제공하며, 엔터프라이즈급 애플리케이션에 적합

    1. 데이터 모델

    • MongoDB
      NoSQL DB, 문서 지향형DB
      데이터를 JSON 형식의 문서로 저장, 컬렉션(=테이블)에 여러 문서 저장
      데이터는 키-값 쌍으로 이루어진 구조체
      스키마가 없거나 유연한 스키마를 지원하므로, 각 문서의 구조가 달라도 저장 가능
    • MariaDB
      관계형 DB (=RDB)
      데이터는 정해진 스키마에 따라 테이블에 저장되며 각 테이블은 행과 열로 구성
      데이터 간의 관계를 정의하고, SQL을 사용하여 데이터를 관리하고 조회합니다.
    • PostgreSQL
      관계형 DB (=RDB), 고급 기능 지원
      데이터는 테이블에 저장
      JSON 데이터 형식, 배열, HStore 등을 통해 비정형 데이터를 다룰 수 있는 기능 제공

    2. 스키마

    • MongoDB
      스키마리스 구조 = 미리 정의된 스키마 없이도 데이터를 저장 가능
      구조화되지 않은 데이터나 동적인 데이터를 다룰 때 유용
      데이터 모델이 자주 변경될 수 있는 애플리케이션에 적합합니다.
    • MariaDB
      고정 스키마 사용
      데이터베이스 설계 시 테이블과 그 구조를 미리 정의해야 하고 데이터는 이 구조를 따라야 함
      구조화된 데이터를 저장하고 관리하는 데 적합합니다.
    • PostgreSQL
      고정 스키마를 사용
      상대적으로 더 유연한 데이터 타입 지원(JSON, XML)
      확장성을 제공하여 관계형 데이터와 비정형 데이터를 동시에 처리 가능

    3. 확장성

    • MongoDB
      수평적 확장(샤딩)을 기본적으로 지원하는 구조( = 데이터를 여러 서버에 분산하여 저장 가능)
      대용량 데이터를 처리하거나 대규모 트래픽을 다룰 때 유리
    • MariaDB
      수직적 확장(=서버의 성능 향상 방식)이 일반적
      수평적 확장도 가능하지만, MongoDB만큼 유연하지는 않음
      주로 MySQL의 확장 방식과 비슷한 클러스터링이나 복제 기능 사용
    • PostgreSQL
      수직적 확장을 지원하지만, 수평적 확장도 가능
      테이블 파티셔닝이나 논리적 복제 기능을 사용해 확장성을 확보 가능
      PostgreSQL의 확장성은 다양한 확장 모듈을 통해 강화 가능

    4. 트랜잭션 처리

    • MongoDB
      멀티 도큐먼트 트랜잭션 지원
      전통적인 관계형 데이터베이스에 비해 트랜잭션 처리에 있어 성능이 약간 떨어질 수 있음
    • MariaDB
      ACID 트랜잭션 지원
      은행 시스템이나 금융 애플리케이션처럼 데이터의 일관성과 안정성이 중요한 애플리케이션에 적합
    • PostgreSQL
      ACID를 완벽하게 지원하며 고급 트랜잭션 기능을 제공
      복잡한 트랜잭션 처리와 함께 동시성 제어 및 잠금 메커니즘이 뛰어남
      다중 버전 동시성 제어(MVCC)를 사용하여 높은 동시성 성능 제공

    5. 성능

    • MongoDB
      비정형 데이터 처리에 최적화 및 대규모 데이터의 빠른 조회 및 쓰기 작업에 강점
      NoSQL 특성상 데이터 모델이 자유롭기 때문에 스키마가 자주 변경되거나 대규모 데이터를 다룰 때 높은 성능을 발휘
    • MariaDB
      전통적인 관계형 데이터베이스 작업(ex. 조인, 정렬, 필터링)에서 높은 성능
      그러나 대규모 비정형 데이터를 다루는 데는 NoSQL만큼 효율적이지는 않음
    • PostgreSQL
      복잡한 쿼리와 대규모 데이터 처리에서 강력한 성능
      고급 인덱스, 파티셔닝, 병렬 쿼리 처리 등 다양한 최적화 기능 제공
      데이터 분석 및 OLAP(온라인 분석 처리) 애플리케이션에 강함

    6. 사용 사례

    • MongoDB
      빠르게 변화하는 비정형 데이터에서 많이 사용
      ex) SNS, IoT 데이터 처리, 로그 데이터 저장, 콘텐츠 관리 시스템) 등
      대규모 데이터를 빠르게 처리해야 하거나 스키마가 자주 변경되는 경우 유리
    • MariaDB
      전통적인 웹 애플리케이션

      ex) e-commerce 시스템, 블로그 플랫폼, 고객 관리 시스템(CRM) 등에서 사용
      MySQL을 대체하거나 업그레이드하려는 경우에도 많이 사용
    • PostgreSQL
      고급 분석, 복잡한 데이터 모델링, 금융 시스템, 지리 정보 시스템(GIS), 데이터 웨어하우스 등에 적합
      고급 기능과 안정성이 필요할 때 선택되며, 대규모 엔터프라이즈 환경에서도 많이 사용
    반응형

    댓글

Designed by Tistory.