MySQL 서버는 사람의 머리 역할을 담당하는 “MySQL 엔진” 손발 역할을 담당하는 **“스토리지 엔진”**으로 구성 된다.
스토리지 엔진은 핸들러 API 를 만족하면 누구든지 스토리지 엔진을 구현해서 MySQL 서버에 추가해서 사용할 수 있습니다.
MySQL 전체 구조 MySQL 에서 쿼리가 실행되는 과정을 크게 보면 대부분의 작업이 MySQL 엔진에 의해 처리되고, 마지막 “데이터 읽기/쓰기” 작업만 스토리지 엔진에 의해 처리 된다.
MySQL 엔진이란?
스토리지 엔진이란?
실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분을 수행한다.
MySQL 서버에서 MySQL 엔진은 1 개 이지만, 스토리지 엔진은 여러 개를 동시 사용이 가능하다. 아래와 같이 사용하면 테이블이 사용할 스토리지 엔진을 지정할 수 있다.
CREATE TABLE test ( column1 int, column2 int ) ENGINE=INNODB;
각 스토리지 엔진은 성능 향상을 위해 키 캐시 (MyISAM 스토리지 엔진), InnoDB 버퍼 풀 ( InnoDB 스토리지 엔진 ) 과 같은 기능을 내장하고 있다.
결론. 하나의 쿼리 작업은 여러 하위 작업으로 나뉘어지는데, 각 하위 작업이 MySQL 엔진 영역에서 처리 되는지 아니면 스토리지 엔진 영역에서 처리 되는지 구분 해야 한다. 단순 캐시, 버퍼, 디스크에서 데이터를 읽고 쓰기 작업은 스토리지 엔진이 담당한다. 이외 SQL 파서, 옵티마이저, SQL 실행기(Group by, Order by) 등은 MySQL 엔진이 담당한다.