NoSQL[Database]

SnowCat·2023년 8월 9일
0

CS - Database

목록 보기
10/10
post-thumbnail

RDB의 단점

  • 스키마가 경직되어 테이블을 변경하는 것이 어려움
    • 특정한 시기에만 이벤트가 발생하여 이벤트 시기의 주문을 구분하고 싶을 때 ,대량의 데이터의 수정이 발생해 리스크가발생함
  • 데이터 중복을 피하기 위해 정규화를 진행하는데, 이로인해 과도한 join이 발생하여 성능 하락이 발생할 수 있음
  • RDB는 기본적으로 서버 하나에 데이터를 저장하기 서버를 추가하는 scale-out을 하는 것이 어려움
  • ACID를 보장해주려 하기 때문에 DB 서버의 퍼포먼스에 안좋은 영향을 끼치게 됨

NoSQL

  • RDB의 단점을 극복하기 위해 Relation Table 구조를 사용하지 않은 데이터베이스들을 NoSQL이라 부름
  • NoSQL은 아래와 같은 특징을 가짐
    • 스키마를 정의하지 않기 때문에 구조가 유연하지만 앱에서 스키마 관리가 필요해짐
    • 데이터의 중복을 허용해 join 사용을 줄일 수 있지만, 앱에서 최신 데이터를 유지하도록 조치를 취해줘야 함
    • 중복을 허용한다는 특성으로 인해 데이터를 나누어 저장하는데 유리하며, scale-out을 RDB에 비해 더 쉽게 할 수 있음
    • ACID 일부를 포기하는 대신 레이턴시, 트래픽 압력을 RDB에 비해 잘 대응할 수 있게 됨

Redis

  • 메모리에 key-value값을 저장하는 데이터베이스로, DB 이외에도 캐시 등으로도 사용할 수 있게 됨
  • value값으로는 문자열, 리스트, 집합, 해시, 정렬된 집합 등을 저장할 수 있음
  • 해시 기반으로 샤딩된 클러스터를 구성할 수 있으며, 고가용성을 지원함
profile
냐아아아아아아아아앙

0개의 댓글