MySQL 엔진 아키텍처
MySQL 엔진 아키텍처
- MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과 손발 역할을 담당하는 스토리지 엔진으로 구분
- 스토리지 엔진의 핸들러 API를 만족하면 누구나 스토리지 엔진을 구현해 MySQL 서버에 추가해서 사용 가능
MySQL 엔진
- 클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러, SQL 파서, 전처리기, 옵티마이저가 중심을 이룸
- 표준 SQL 문법을 지원해 표준 문법을 지켜 작성된 쿼리는 타 DBMS와 호환되어 실행 가능
스토리지 엔진
-
실제 데이터를 디스크 스토리지에 저장하거나 데이터를 읽어오는 역할을 수행
-
MySQL 엔진은 하나만 사용할 수 있지만 스토리지 엔진은 여러 개를 동시에 사용 가능
-
다음 명령어를 통해 테이블에 사용할 스토리지 엔진을 지정할 수 있음
CREATE TABLE test_table (fd1 INT, fd2 INT) ENGINE=INNODB;
핸들러 API
- MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽을 때 각 스토리지 엔진에 요청을 하는데 이를 핸들러(Handler) 요청으로 부름
- 핸들러 API를 통해 레코드 작업이 얼마나 수행됐는지 확인하는 명령어
SHOW GLOBAL STATUS LIKE 'Handler%';