DB
몽고디비
pastime
2021. 7. 26. 02:53
728x90
몽고디비를 성명하기 전 NoSQL을 설명해야한다.
NoSQL이란?
전통적인 관계형 데이터베이스(RDBMS)과는 다르게 비관계영 DBMS로 대규모 데이터를 유연하게 처리할수 있는 장점
테이블-칼럼과 같은 스키마 없이, 분산 환경에서 단순 검색 및 추가 작업을 위한 key - value 최적화,
지연과 처리율이 우수하다. 대규모 확대가 가능, 수평적 확장성의 특징을 가지고 있다.
아파치 카산드라, 하둡, 몽고DB 같은것들이 대표적인 예시이다.
몽고디비의 대표적인 특징
ㅇ 데이터가 Json 구조로 저장, 스키마가 없다.
ㅇ Full index Support
ㅇ 데이터 복제를 통해 가용성 향상
ㅇ primary key를 기반으로 여러 서버에 데이터 나누는 스케일 아웃 가능
ㅇ 키 기반으로 get, put 외 다양한 쿼리 제공
ㅇ 고성능의 atomic operation을 지원
ㅇ 맵리듀스 제공
ㅇ 별도 스토리지 엔진을 통해 파일 저장 가능
장점
ㅇ 삭제가 없는 경우 적합 (eg. 로그, 세션 등)
- 스키마가 없어 어떤 형태의 데이터라도 저장 가능
- 쓰기, 읽기의 성능이 뛰어나다. 캐싱 또는 많은 트래픽을 감당할때 좋다
- 스케일 아웃이라 쉽게 운용 가능
- SQL만큼 강력한 쿼리 제공
- Json 형태로 저장하여 직관적이며 개발하기 편하다
단점
ㅇ 정합성이 떨어진다.
- Join이 없다. 조인이 필요 없도록 데이터 구조화가 필요하다
- 메모리 매핑 파일 로 파일 엔진 DB이다. 메모리 관리를 OS에 위임
메모리에 의존적, 메로리 크기가 성능을 좌우 - 완벽하게 SQL을 대체 할수 없다.
- B-tree 인덱스를 사용하여 인덱스를 생성, 크기가 커질수로 읽기,쓰기의 성능 저하.
이러한 특성때문에 조회하는데에 적합
728x90