데이터베이스 엔진 또는 스토리지 엔진은 데이터베이스 관리 시스템이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제하는 데 사용하는 기본 소프트웨어 컴포넌트입니다. 각 스토리지 엔진은 데이터의 저장, 검색, 업데이트 및 삭제와 관련된 특정 방식과 알고리즘을 구현하고 있습니다.
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50)
) ENGINE=InnoDB;
ENGINE={스토리지 엔진명} 으로 지정 가능합니다.
MySQL 5.5 버전 이후로 InnoDB가 기본 스토리지 엔진으로 설정됩니다.
default-storage-engine = InnoDB
설정 파일(my.cnf 또는 my.ini)에서 default-storage-engine 변수를 설정해서 변경 가능(서버 재시작해야함)
SHOW ENGINES;
아래 명령어를 통해 엔진을 확인 가능합니다.
SHOW ENGINES;

참고로 SQL이 처리되는 과정은 아래와 같습니다.
1. SQL 구문 작성
2. SQL 파싱 (Parsing)
SQL 파서는 SQL 구문을 분석하여 올바른지 확인하고, 구문 트리(Syntax Tree)를 생성합니다.
3. SQL 최적화 (Optimization)
SQL 옵티마이저가 최적화 전략을 사용하여 쿼리 실행 계획(Query Execution Plan)을 생성합니다.
4. SQL 실행 (Execution)
SQL 실행 엔진이 실행 계획에 따라 쿼리를 실행니다:
5. 스토리지 엔진 작업 (Storage Engine Operations)
스토리지 엔진은 실제 데이터 저장 및 검색을 담당합니다.
Inno DB의 경우 다음과 같은 작업 수행합니다:
6. 디스크 I/O (Disk I/O)
스토리지 엔진이 디스크에서 데이터를 읽거나 씁니다.
7. 결과 반환 (Result Return)
쿼리 결과가 사용자에게 반환, 클라이언트 애플리케이션으로 전송
InnoDB는 MySQL의 기본 스토리지 엔진으로, 높은 데이터 무결성과 트랜잭션 안전성을 제공합니다.
MyISAM은 InnoDB보다 간단하고 빠른 읽기 성능을 제공하는 스토리지 엔진, 하지만 트랜잭션과 외래 키를 지원하지 않습니다.
| 트랜잭션 지원 | 예 (ACID 준수) | 아니오 |
|---|---|---|
| 외래 키 | 예 | 아니오 |
| 잠금 방식 | 레코드 단위 잠금 | 테이블 단위 잠금 |
| 동시성 | 높은 동시성 (MVCC) | 낮은 동시성 |
| 읽기 성능 | 좋음 | 매우 좋음 |
| 쓰기 성능 | 좋음 | 좋음 |
| 복구 기능 | 자동 복구 기능 제공 | 자동 복구 기능 없음 |
| 메모리 사용 | 더 많이 사용 | 적게 사용 |