본문 바로가기
Data/DB

[DB] MongoDB 에 대해 알아보자 | LIM

by forestlim 2023. 3. 26.
728x90
반응형
MongoDB는 NoSQL 데이터 베이스 중 하나로 "도큐먼트 스토어" 이다. 
도큐먼트 스토에서는 주로 데이터 처리의 유연성을 목적으로 한다. 


👩‍💻 MongoDB(NoSQL) vs MySQL(DBMS)

DBMS에 대표적인 MySQL 과의 비교해보자.

  MongoDB MySQL
Structure Schemaless Fixed Structure
Data Representation JSON Document  Table
Sharding Auto-Sharding Manual
Transaction X O

MongoDB의 장점과 단점에 대해서도 간략히 정리해보면 

➕ 스키마 없이 사용 가능

➕ write 성능이 좋음

➕ read 시 파일의 index를 메모리에 로딩해놓고 찾는다. (memory mapped file)

➖ Join 이나 Transaciton 처리 불가

➖ 디스크에 쓰기가 비동기식으로 이루어진다. 때문에 데이터 유실될 가능성이 있다.


🚀 MongoDB 데이터 저장 구조

참고: https://bcho.tistory.com/746

 

MongoDB의 Physical 데이타 저장 구조

MongoDB를 구성할때 보면, 가장 많이 권장 받는 부분 중의 하나가, 메모리량과 디스크 성능이다.메모리 크기가 아주 sensitive한 요인이 되는데, 어떤 부분이 문제가 되는지 내부 저장 구조를 살펴 봄

bcho.tistory.com

MongoDB는 메모리 크기가 DB 성능에 아주 중요한 요인이 된다. MongoDB는 기본적으로 Memory Mapped File 을 사용한다.

MongoDB는 데이타를 write할때, 논리적으로 memory 공간에 write하고,
일정 주기에 따라서, 이 메모리 block들을 주기적으로 disk로 write하는데,
이 디스크 writing 작업은 OS에 의해서 이루어 진다.

자주 엑세스 되는 Hot Data 들이 집중되서 메모리에 올라갈 수 있도록 설계하는 것이 핵심이다. 이 부분이 중요한 것 같다. 

 

👩‍💻 MongoDB vs ElasticSearch

두 db 모두 document-oriented database 이다. 로그를 저장하고 조회할 때 자주 사용되는 플랫폼이다. 

다양한 데이터 타입을 저장하고 사용한다면 MongoDB가 좋고

기본 text log 만 조회하고 저장한다면 ElasticSearch 가 훨씬 성능이 빠르고 좋다.

https://tv.kakao.com/channel/3693125/cliplink/414072595

 

 

📖 추후 더 정리하고 싶은 것

  • HBase 는 무엇이고 MongoDB와의 차이점
  • BigTable과 BigQuery 의 차이점
  • GCP 에 있는 여러 DB 관련 제품 Comparing
728x90
반응형

댓글