[cs 스터디] 4-4. 데이터베이스의 종류

YooJeeun·2025년 1월 14일

cs 스터디

목록 보기
44/65

관계형 데이터베이스

관계형 데이터베이스
: 행과 열을 가지는 표 형식 데이터를 저장하는 형태. SQL을 써서 조작함

MySQL, PostgreSQL, 오라클, SQL Server, MSSQL


MySQL

: 대부분의 운영체제와 호환되며 현재 가장 많이 사용하는 데이터베이스
대용량 데이터베이스를 위해 설계되어 있다.

  • C, C++로 만들어짐
  • MyISAM 인덱스 압축 기술
  • B-트리 기반 인덱스
  • 스레드 기반 메모리 할당 시스템
  • 매우 빠른 조인
  • 최대 64개의 인덱스
  • 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공

스토리지 엔진: 데이터베이스의 심장과도 같은 역할

  • 모듈식 아키텍처로 쉽게 바꿀 수 있음
  • 데이터 웨어하우징
  • 트랜잭션 처리
  • 고가용성 처리

스토리지 엔진 위에 있는 커넥터 API 및 서비스 계층을 통해 MySQL 데이터베이스와 쉽게 상호작용 가능
MySQL은 쿼리 캐시를 지원 -> 입력된 쿼리 문에 대한 전체 결과 집합을 저장함
=> 사용자가 작성한 쿼리가 캐시에 있는 쿼리와 동일하면 서버는 구문 분석, 최적화 및 실행을 건너뛰고 캐시의 출력만 표시함


PostgreSQL

MySQL 다음으로 개발자들이 선호하는 데이터베이스 기술
VACUUM: 디스크 조각이 차지하는 영역을 회수할 수 있는 장치

  • 최대 테이블 크기 32TB
  • SQL 뿐만 아니라 JSON을 통한 데이터 접근 가능
  • 지정 시간에 복구하는기능
  • 로깅
  • 접근 제어
  • 중첩된 트랜잭션
  • 백업

NoSQL 데이터베이스

NoSQL(Not only SQL)이라는 슬로건에서 생겨난 데이터베이스
SQL을 사용하지 않는 데이터베이스를 말함
(MongoDB, redis 등)

MongoDB

  • JSON을 통해 데이터에 접근 가능
  • Binary JSON 형태(BSON)로 데이터 저장
  • 와이어드타이거 엔진이 기본 스토리지 엔진
  • 키-값 데이터 모델에서 확장된 도큐먼트 기반
  • 확장성이 뛰어남
  • 빅데이터 저장 시 성능이 좋음
  • 고가용성과 샤딩, 레플리카셋 지원
  • 스키마를 정해놓지 않고 데이터 삽입 가능-> 다양한 도메인의 데이터베이스를 기반으로 분석하거나 로깅등을 구현할 때 강점을 보임

redis
: 인메모리 데이터베이스이자 키-값 데이터 모델 기반의 데이터베이스

  • 기본적인 데이터 타입: String
  • 최대 512MB 저장
  • 셋, 해시 지원
    pub/sub 기능을 통해 채팅 시스템, 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층, 키-값이 필요한 세션 정보 관리, 정렬된 셋 자료구조를 이용한 실시간 순위표 서비스에 사용
profile
제니벨로그

0개의 댓글