Storage Engine: MySQL 기준

김기현·2025년 6월 19일

Database

목록 보기
22/24

스토리지 엔진(Storage Engine)은 DBMS가 데이터를 디스크에 저장하고, 조회하고, 수정하고, 삭제하는 방법을 실제로 구현한 하위 모듈이다. 데이터를 어떻게 저장하고 읽어올지 담당하는 저장소의 내부기술이라고 보면 된다.

스토리지 엔진 예시

MySQL은 다양한 스토리지 엔진을 지원하는 DBMS이다.

엔진 이름특징
InnoDB디폴트 엔진. 트랜잭션, 외래 키(FK), 롤백, ACID 지원
MyISAM빠른 읽기, 트랜잭션 미지원, 테이블 단위 잠금
Memory데이터를 메모리에 저장. 매우 빠르지만 휘발성
CSV데이터를 CSV 파일로 저장
Archive압축된 형태로 저장, 주로 로그 기록용

MySQL에서는 CREATE TABLE ... ENGINE-InnoDB; 처럼 명시적으로 엔진을 설정할 수 있다.

스토리지 엔진의 내부 구조

스토리지 엔진은 다음과 같은 요소들을 포함한다.

구성 요소설명
데이터 파일 구조데이터를 어떤 구조로 디스크에 저장할지 (예: B-Tree, Hash 등)
인덱싱 방식인덱스를 어떤 방식으로 구현할지 (예: B+ Tree, Full-Text)
버퍼링데이터를 메모리에 캐시해서 성능 향상
락킹동시성 제어 방식 (행 단위 잠금 vs 테이블 단위 잠금)
트랜잭션 지원 여부COMMIT / ROLLBACK 지원 여부
충돌 복구장애 발생 시 데이터를 어떻게 복구할지

InnoDB와 MyISAM

항목InnoDBMyISAM
트랜잭션지원 (ACID)미지원
외래 키지원미지원
잠금 방식행 단위 잠금테이블 단위 잠금
성능쓰기 많은 곳에 유리읽기 많은 곳에 유리
충돌 복구자동 복구 지원수동 복구 도구 필요
저장 구조클러스터형 인덱스비클러스터형 인덱스

스토리지 엔진 선택 기준

  • 트랜잭션 및 외래 키가 필요하다: InnoDB
  • 읽기 성능이 중요하다: MyISAM
  • 데이터가 휘발적이고 빠른 처리가 필요하다: MEMORY
  • 로그 저장 등 압축 저장이 중요하다: ARCHIVE
profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글