[CS] 관계형 DB vs NoSQL / 스토리지 엔진

최지나·2024년 1월 11일
2

CS

목록 보기
45/55

관계형 DB(RDBMS) vs NoSQL

관계형 데이터베이스는 정형화된 데이터를 다루는데 유리하며 NoSQL 데이터베이스는 유연한 스키마와 확장성을 필요로 하는 데이터를 다루는데 유용

관계형 데이터베이스

  • 표 형식 데이터를 저장하는 데이터베이스로 SQL 언어를 사용
  • MySQL, PostgreSQL, 오라클, SQL Server
  • 각 DB별로 특화된 SQL을 사용하며 스토리지 엔진으로는 InnoDB, MyISAM 존재
  • 스키마를 사용하여 데이터 구조를 정의하고, 트랜잭션 처리, ACID 특성을 지원
  • Mysql은 쿼리 캐시를 지원, PostgreSQL은 디스크 조각이 차지하는 영역을 회수할 수 있는 장치인 VACCUM이 특징

NoSQL 데이터베이스

  • 유연한 스키마와 확장성을 가진 데이터베이스로 SQL을 사용하지 않음
  • MongoDB, Redis
  • Json 형식의 도큐먼트로 데이터를 저장하며, 키-값 데이터 모델을 기반으로 확장된 도큐먼트 기반의 데이터베이스
  • ReplicaSet을 통한 이중화 지원, 샤딩을 통해 데이터베이스 분할 관리 가능
  • JSON을 통해 데이터에 접근하고, 데이터의 조합함수를 사용하여 데이터를 추출, 조합 가능

스토리지 엔진

  • InnoDB(Mysql의 기본 스토리지 엔진)은 대용량 데이터를 다루기 에 좋고, 트랜잭션 처리 및 대용량 처리에 강점을 가지며, ReplicaSet을 통해 이중화를 지원. 행 수준의 잠금 제공
  • MyISAM은 테이블 수준의 잠금을 제공하고 행, 인덱스 조회 캐싱을 통해 빠른 조회를 지원
  • WiredTiger 엔진은 LSMTree(로그기반트리)를 사용하여 읽기 < 저장 성능 향상. 압축, 저널링, 체크포인트를 통한 데이터 안정성 및 복구 기능 제공

REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

2개의 댓글

comment-user-thumbnail
2024년 1월 31일

각 DB별로 특화된 SQL"을을" 오타가 있어요!
좋은 정리네요!

1개의 답글