📌MongoDB?
- mongoDB는 C++로 짜여진 오픈소스 데이터베이스
- Document-Oriented(문서 지향적) NoSQL 데이터베이스
📌RDB와의 NoSQL 비교
📖RDB
- 구조가 정형화 되어있음.
- 데이터는 테이블(table)에 레코드(record)로 저장되며 각 테이블에는 명확하게 정의된 구조
- 정해진 스키마에 따르지 않으면 데이터를 추가할 수 없음
- 수직적 확장만 지원
- '샤딩'이라는 개념이 있지만 특정 제한이 있으며 구현하기가 대체로 어려움
- 데이터의 무결성 보장
- 데이터를 중복없이 한번만 저장함
📖NoSQL
- 구조가 정형화 되어 있지 않음
- 다른 구조의 데이터를 같은 컬렉션에 추가 가능
- 스키마에 대해 신경쓸 필요가 없음
- 🌟언제든지 저장된 데이터를 조정하고 새로운 "필드"를 추가할 수 있음
- 수직적 확장, 수평적 확장 둘다 가능
- 데이터는 애플리케이션이 원하는 형식으로 저장됨.
- join, 트랜잭션 지원 안함
📌단점
- 데이터가 여러 컬렉션에 중복되어 있기 때문에, 수정(update)를 해야하는 경우 모든 컬렉션에서 수행해야 함
- 데이터 정합성 보장 안됨
📌사용처
🌟쌓아놓고 삭제가 없는 경우가 제일 적합 ex) 로그데이터, 세션
- 정확한 데이터 구조를 할 수 없거나 변경/확장 될 수 있는 경우
- 읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우 (즉, 한번의 변경으로 여러 문서를 변경할 일이 없는 경우)
- 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)
참고)
https://www.youtube.com/watch?v=qiElyjkUrKY
https://sjh836.tistory.com/98