MongoDB 특징
- MongoDB는 NoSQL 로, 데이터를 JSON과 유사한 형식인 BSON 문서로 저장하며, 문서 지향 데이터베이스 입니다.
- 유연한 스키마를 가지며, 이로 인해 요구 사항이 변화함에 따라 데이터베이스 스키마를 쉽게 조정할 수 있습니다.
- 샤딩을 통한 수평적 확장을 지원합니다.
BSON이란?
- BSON은 binary로 인코딩 되어 있는 JSON을 지칭합니다.
- binary 형태의 기계어이기 때문에 컴퓨터 내부에서는 읽는 속도가 빠르지만, 사람이 읽기 위해서는 디코딩 과정이 필요합니다.
- MongoDB에서 파일을 저장할 때에는 BSON 형태로 저장합니다.
샤딩이란?
샤딩은 DB의 데이터를 행 기준으로 데이터를 나누는 수평 파티셔닝 을 진행하여, 여러 서버에 분산시켜 저장하는 방식을 말합니다. 이 방식은 DB 처리량과 저장 용량을 확장하는 데 효과적입니다.
Document 형식
같은 NoSQL인 Redis와 비교
- 유형
MongoDB: 유연한 스키마를 제공하며, 복잡한 쿼리와 다양한 종류의 데이터를 저장/관리하는데 적합합니다.
Redis: Key-Value 형태로 데이터가 저장되며, 데이터를 주로 메모리에 저장하여 빠른 읽기 및 쓰기 작업을 제공합니다.
- 성능
MongoDB: 디스크 기반의 저장 방식 때문에, 대용량 데이터 처리에 적합하지만 Redis에 비해 상대적으로 느릴 수 있습니다.
Redis: 메모리 기반으로 작동하기 때문에 매우 빠른 성능을 제공합니다.
- 인덱스
MongoDB: 다양한 인덱스를 지원하여 검색 속도를 높입니다.
Redis: 인덱스를 지원하지 않지만, Sorted Sets, Lists 자료구조를 사용하여 인덱싱과 유사한 기능을 제공할 수 있습니다.
- 사용 예시
MongoDB: 대용량 데이터와 복잡한 쿼리가 필요한 애플리케이션에 적합합니다.
ex) SNS, 콘텐츠 관리 시스템(ex:카톡의 톡서랍), 로그 데이터 분석
Redis: 빠른 데이터 액세스가 필요한 경우에 적합합니다.
ex) 캐싱, 실시간 순위판, 메시징 시스템
- 영속성
MongoDB: 데이터를 디스크에 저장하므로 재부팅 후에도 데이터가 유지됩니다.
Redis: 기본적으로 인메모리이지만, 필요에 따라 디스크에 데이터를 지속적으로 저장할 수 있는 기능을 제공합니다.
Ref.
https://melonicedlatte.com/2023/01/23/195400.html
https://tychejin.tistory.com/348