몽고DB

Linda·2023년 5월 3일

MongoDB

목록 보기
2/3

mysql

관계형데이터베이스 (rdbms)
테이블에 데이터 저장한다.
sql 통해서 db에 접근한다.
join쿼리를 통해서 다양한 테이블 정보 합치고 스키마를 정의하여 테이블에 들어갈 필드에 대한 규칙을 규정한다.
일관성이 중요한 트랜잭션 업무에 적합하다.
온라인에서 다양한 집계 및 통계 분석하는업무, 복잡한계산과 실시간 데이터정합성(어떤 데이터들이 값이 서로 일치하는 상태)이 필요한 업무에 적합하다.

mongo DB

제이슨과 닮은 형태인 document DB(문서 지향 데이터 모델)로 데이터를 저장한다.
MQL(MongoDB query Language)을 이용하여 DB에 접근한다.
오프라인에서 정형 비정형 데이터 분석 업무에 적합하다.
초당 동시 처리가 중요한경우와 단순 기록형 업무에 적합하다.기본적으로 하나의 primary와 두개의 secondary로ReplicaSet을 구성한다.
primary는 데이터 쓰기 요청을 처리하고, secondary는 primary부터 변경된 데이터를 복제한다.
< - 이렇게 복제하고 유지함으로서 하나의 서버에서 장애가 발생하더라도 데이터를 유지할 수 있다.
만일 primary서버에 문제가 생기면, secondary가 primary로 전환되어 서버를 계속 유지시킨다.
그리고 다시 빈 secondary서버를 몽고디비가 복구 시켜줌으로서 서버를 유지할수 있게 된다.
몽고DB에 데이터가 증가하여 더이상 하나의 Replica Set에 담을 수 없게 되면, 몽고DB는 데이터를 샤딩하여 분산시켜 줄 수 있음.
이러한 샤딩과정은 서비스 중단없이 온라인으로 진행된다.

  • 샤딩
    데이터를 분산하여 저장하는 개념

  • 밸런싱 : 특정 샤드에 데이터가 몰리면 다른 샤드로 데이터를 이동 시켜, 전반적으로 모든 샤드가 균등하게 데이터를 저장할 수 있도록 해준다.

몽고db의 장점 -
1. 빠르게 어플리케이션 구축할 수 있고 다양한 데이터타입 핸들링할 수 있다.
2. 스케일링에 대한 관리 기능을 제공하고있다.
3. document가 객체지향 프로그래밍에 언어와 자연스럽게 매핑되기 때문에 개발이 단순화된다.
4. 데이터 구조가 유연해서 새로운 비즈니스 요구사항에 대해 잘 반영해줄 수 있다.
5. 분산 데이터센터에 대해 스케일링이 가능해서 데이터 볼륨 및 처리량이 증가함에 따라 중지 없이 쉽게 확장이 가능하다.
6. 쿼리 외에도 다양한 API를 통한 데이터 저장 및 검색이 가능하다.
7. 쿼리 프로세싱이 단순화되어 대용량 데이터 처리 성능이 향상된다.
but 데이터 중복에 의해 데이터일관성이 저하되고 용량이 증가한다는 단점 이있다.

0개의 댓글