-
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), 데이터 웨어하우스 등에 적합
고급 기능과 안정성이 필요할 때 선택되며, 대규모 엔터프라이즈 환경에서도 많이 사용
반응형'Study(진행중) > 항해99' 카테고리의 다른 글
99클럽 코테 스터디 31일차 TIL / 네트워크(프로그래머스) (0) 2024.08.21 99클럽 코테 스터디 30일차 TIL / 잃어버린괄호(백준) (0) 2024.08.20 99클럽 코테 스터디 28일차 TIL / TCP & HTTP 차이점 (0) 2024.08.18 99클럽 코테 스터디 27일차 TIL / TCP & UDP 차이 (0) 2024.08.18 99클럽 코테 스터디 26일차 TIL / 개인정보 수집 유효기간(프로그래머스) (0) 2024.08.17 - MongoDB