Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 스토리지 엔진이란? 지원 스토리지 엔진 목록 확인 방법 완벽 정리

스토리지 엔진(Storage Engine)이란?

스토리지 엔진은 데이터베이스 관리 시스템(DBMS)이 데이터 삽입(Create), 조회(Read), 수정(Update), 삭제(Delete)와 같은 다양한 SQL 연산을 처리하기 위해 사용하는 소프트웨어 구성 요소입니다. 쉽게 말해, DBMS가 데이터베이스 내부의 정보를 실제로 저장·관리하도록 하는 핵심 모듈이라고 할 수 있습니다.

가장 널리 사용되는 스토리지 엔진은 InnoDB이며, MySQL 5.5 이상 버전에서는 기본 스토리지 엔진으로 채택되고 있습니다. 그 이전 버전(MySQL 5.5 미만)에서는 MyISAM이 기본 엔진으로 사용되었습니다.

대표적인 스토리지 엔진의 특징

InnoDB는 트랜잭션, 행 수준 잠금(row-level locking), 외래 키(foreign key)를 지원하기 때문에 데이터 무결성이 중요한 애플리케이션에 적합합니다. 반면 MyISAM은 트랜잭션을 지원하지 않지만 구조가 단순하고 읽기 성능이 빨라 과거에 널리 활용되었습니다. 그 외에도 임시 테이블에 유용한 MEMORY, 데이터 보관용 ARCHIVE, CSV 파일로 저장하는 CSV, 입력된 데이터를 폐기하는 BLACKHOLE 등 다양한 용도의 엔진이 제공됩니다.

SHOW ENGINES로 지원 엔진 목록 확인하기

현재 설치된 MySQL에서 지원하는 스토리지 엔진 목록은 SHOW ENGINES 명령어로 간단히 확인할 수 있습니다.

mysql> SHOW ENGINES\G

명령어 실행 결과에는 각 엔진에 대해 다음과 같은 정보가 출력됩니다.

  • Engine: 스토리지 엔진 이름
  • Support: 지원 여부 (YES / NO / DEFAULT)
  • Comment: 해당 엔진에 대한 설명
  • Transactions: 트랜잭션 지원 여부
  • XA: XA 분산 트랜잭션 지원 여부
  • Savepoints: 세이브포인트 지원 여부

실행 결과 요약

엔진Support설명트랜잭션
FEDERATEDNO원격 MySQL 서버의 테이블에 접근하는 엔진NO
MRG_MYISAMYES동일한 구조의 MyISAM 테이블 집합NO
MyISAMYES기존 기본 엔진, 빠른 읽기 성능NO
BLACKHOLEYES/dev/null처럼 기록된 데이터를 폐기NO
CSVYESCSV 형식으로 데이터 저장NO
MEMORYYES메모리 기반 해시 저장, 임시 테이블에 유용NO
ARCHIVEYES데이터 아카이브(보관) 전용 엔진NO
InnoDBDEFAULT트랜잭션, 행 수준 잠금, 외래 키 지원YES
PERFORMANCE_SCHEMAYES서버 성능 모니터링용 스키마NO

위 결과에서 InnoDB의 Support 값이 DEFAULT로 표시되어 있는 것을 확인할 수 있습니다. 만약 특정 테이블에 다른 엔진을 적용하고 싶다면 CREATE TABLE ... ENGINE=MyISAM;과 같이 테이블 생성 시 엔진을 직접 지정할 수 있으며, 서버 전체의 기본 엔진은 default_storage_engine 시스템 변수를 통해 변경할 수 있습니다.