티스토리 뷰
M : MongoDB
E : Express JS
A : Angular JS
N : Node JS
ExpressJS로 어플리케이션을 제작하는데 사용
Node.js를 웹서버 구축에 사용한다
몽고db는 JSON으로 전달하기때문에 Node.js와 함께 사용하면 좀더 편하게 사용할수있다
JAVA와 함께 사용하면 매핑해야하기때문에 좀 불편할수있다
RDB의 레코드 == 몽고DB의 하나의 문서
RDB의 테이블 == 몽고DB의 컬렉션
RDB의 컬럼 == 몽고DB의 속성
RDB의 장점
데이터를 중복없이 구조적으로 모델링 가능
안정감이있다
RDB의 단점
스키마 (테이블구조)가 변경되면 큰일남 처음 설계가 굉장히 중요함
MongoDB의 장점
스키마가 변해도 상관이 없다 ( document형식이기때문에 문제되지않는다)
속도와 분산의 장점이있다
NoSQL의 장점만을 이용해 설계한다
Scale up : 수직적 확장 RDB
Scale out : 좌우로 확장 MongoDB
MongoDB의 ScaleOut은 shading이라고 불리기도한다
예를들면 Redis server에
primary는 쓰기서버이고 secondary는 읽기만하는서버이다
그런데 만약 primary서버가 고장이나면 secondary 서버중 하나가 모니터링하다가 primary를 대신한다
위 사진처럼 서버를 분산시키는 (shading)을 몽고db에서는 auto로 해준다 (약간의 설정필요) auto shading == replica
몽고db의 내구성이 좋지않은이유 : 쓰기속도와 내구성은 반비례
몽고의 쓰기 시맨틱스 (Write Symantics)
1. 명령하고 잊어버리기 (fire-and-forget) : 명령을 치고 잊어버려서 복구가 되지않는다 주로 로그같은것에 사용
2. 안전모드 (safemode) : 기본적으로 disabled 되어있다 사용시 속도가 조금 느려질수있음
명령하고 잊어버린다해도 저널링을 사용하면 된다
저널링 : 디스크의 io, CRUD를 다 기억해둔다
저널링을 사용하지않는다면 백업을 사용
클러스터링 == Shading
'DataBase > MongoDB' 카테고리의 다른 글
MongoDB 기본 쿼리문 (0) | 2019.04.02 |
---|