HNN : NoSQL

Gwonyeong·2023년 3월 11일
0

HNN

목록 보기
1/1

프로젝트에 RDBMS를 사용할지 NoSQL을 사용할지 고민하는 경우가 있었는데 해답을 찾았다.
바로 둘을 같이 사용하는 것.
그리고 둘을 구현하려는 기능에 따라 유리한 방향으로 사용하면 된다.
Join을 사용하고, 엔티티의 틀이 필요하고, 데이터를 자주 바꿔준다면 sql이고
자유롭게 작성하고 빠른 인덱싱을 원한다면 Nosql을 사용하는 것으로 보인다.

조회수를 기록하는건 Nosql, 게시물의 정보를 기록하는건 sql로 생각하면 되지 않을까 싶다.

MongoDB의 특징

  • 메모리맵 형태의 파일엔진 DB이기 때문에 메모리에 의존적
    • 메모리 크기가 성능을 좌우하기 때문에 메모리를 넘어서면 성능이 급격히 저하됨.
  • 쌓아놓고 삭제가 없는 경우 적합
    • 로그데이터
    • 이벤트 참여 내역
    • 세션 등등
  • 트랜잭션이 필요한 금융, 결제, 빌링, 회원정보 등에는 부적합함
💡 그러므로 NoSQL에 유리한 곳에는 NoSQL을 사용하고 RDBMS가 유리한 곳에는 RDBMS를 사용하자!

장점

  • 스키마 없음
    • 다양한 형태의 데이터 저장 가능
    • 데이터 모델의 유연한 변화 가능(데이터 모델 변경, 필드 확장 용이)
  • 읽기, 쓰기 성능 뛰어남!
  • Scale Out구조
    • 많은 데이터 저장 가능
    • 장비 확장이 간단함.
  • JSON구조
  • 사용 방법이 쉽고 개발에 편리

단점

  • 데이터 업데이트 중 장애 발생시 데이터 손실 가능
  • 많은 인덱스 사용 시 충분한 메모리 확보 필요
  • 데이터 공간 소모가 RDBMS에 비해 상당히 많음
    • 비 효율적인 key중복 입력
  • 복합한 JOIN 사용시 성능 제약이 따름
  • 데이터의 양이 많을 경우 유실 가능성이 있어 데이터의 무결성, 신뢰성이 비교적 떨어지는 것.
profile
부동의 첫사랑

0개의 댓글