Database Internals 책을 1회독 한 후 머리속에 남은 것이 없어 2회독으로 하며 정리해보고자 작성하는 포스팅. 데이터 엔지니어를 목표로 하는 비전공자에게 피가되고 살이 되는 필독서이지 않을까… 싶다

1부. 스토리지 엔진

1장. 개요

1부, 2부에서 다루는 내용을 이해하기 위해 필요한 선행지식을 정리하는 장.

데이터베이스의 구성 요소

  • 전송계층 : 요청 전달
  • 쿼리 프로세서 : 가장 효율적인 쿼리 계획, 결정
  • 실행 엔진 : 실제 작업 수행
  • 스토리지 엔진 : DBMS에서 데이터를 메모리, 디스크에 저장, 검색, 관리

** 스토리지 엔진은 api를 제공하며, 사용자는 이를 통해 데이터 Create, Read, Update, Delete이 가능해짐

사용자는 사용 목적에 따라 스토리지 엔진을 선택 할 수 있다. ex) Mysql - (InnoDB, MyISAM, RocksDB)

Database 결정 시 고려사항

  • 스키마와 레코기의 크기
  • 클라이언트 수
  • 쿼리 형식과 접근 패턴
  • 읽기와 쓰기 쿼리 비율
  • 위 변수들의 변동폭

OLTP, OLAP 이란

  • OLTP : 대량의 사용자 요청과 트랜잭션 처리, 쿼리가 미리 지정되어 있고 그 길이가 짧다. (ex, 사용자의 계정 생성, 삭제, 사용자 정보변겅 등등…)
  • OLAP : 복잡한 집계 작업 수행, 분석과 데이터 웨수하우스에 주로 사용된다. 시간이 오래 소요되는 복잡하고 임의적인(ad-hoc)쿼리 처리 (ex 윈도우 함수(min, max, avg), 각종 함수를 통한 데이터 분석을 위한 쿼리)
  • Hybrid : OLTP + OLAP

DBMS의 구조 < image— 그림 그리기>