본문 바로가기
2021-1/RDA

NoSQL | MongoDB (문서형 데이터베이스)

by 이망고_ 2021. 10. 5.

MongoDB

10gen 사에서 개발된 높은 성능과 확장성을 가지고 있는 데이터베이스 

MongoDB 사용하는 이유

memcached, Tokyo Tyrant, Redis 와 같은 key-value 형 데이터베이스완 다른 타입

여러 용도로 사용할 수 있는 NoSQL 데이터베이스

Schemaless

스키마는 정의하지 않지만 관계형 데이터베이스와 마찬가지로 임의의 key 값에 대한 복잡한 검색이 가능하다

관계형 데이터베이스와 비교해 응답 속도가 빠르고, 인덱스를 추가하여 처리 속도를 더 빠르게 할 수 있다

특징

  • Schemaless 
  • BSON(JSON을 바이너리화 한것) 형식으로 저장, value로 key와 짝궁
      데이터베이스 테이블 레코드
    문서형 데이터베이스의 용어 데이터베이스 콜렉션 document

장점 

  • 스키마 없이 사용
  • 프로그램 코드만 수정 가능
  • 스키마와 프로그램 코드 사이의 정합성에 신경쓰지 않아도 된다 

약점

  • JOIN이나 트랜잭션성 처리 불가능 : 트랜젹션싱 처리가 필요한 경우-관계형 데이터베이스가 적합 
  • 디스크에 쓰기가 비동기식 : 데이터 유실 가능성 존재 <-> 트레이드오프로 빠른 응답 속도 가능

그룹 처리 

검색조건 유연하지만 그룹처리(GROUP BY) 는 방식이 독특해서 어렵다 

JavaScript로 MongoDB 쉘을 제공하고 있다

도입 사례

foursquare, Preferred Infrastructure, 아메바피아

사용 케이스

컬럼이 고정되지 않은 경우 

  • 앙케이트 응답 데이터와 같이 컬럼이 고정되기 어려운 경우
  • 해석 데이터처럼 칼럼이 유동적으로 변할 가능성이 있을 경우 

 

'2021-1 > RDA' 카테고리의 다른 글

NoSQL | HBase (컬럼형 스토어)  (0) 2021.10.05
NoSQL | Cassandra  (0) 2021.10.05
NoSQL | Redis (휘발성/영속성 ket-value 형 스토어)  (0) 2021.10.05
NoSQL | Tokyo Tyrant ( 영속성 key-value형 스토어)  (0) 2021.10.05
NoSQL | memcached  (0) 2021.10.05