1. RDBS의 기본적인 내부동작을 알아보자!
- 커넥션 처리기 (Connection Handler)
- 사용자로 부터 받은 질의어(SQL)나 애플리케이션의 요청을 받아 RDBS에 맞게 이를 해석해서 SQL문으로 바꿔주는 역할을 한다.
- 구문 분석기 (Parser)
- 커넥션 처리기로 부터 받은 SQL문을 먼저 RDBMS가 읽기 쉽도록 토큰화 과정을 거친다.
- 이는 해석가능한 단위로 분리가 가능한 SQL문의 특징을 이용한다.
- 토큰화 과정을 거친 후 구문 분석기는 문법 오류를 탐지하고, 오류가 있을 경우 에러를 발생시킨다.
- 관계형 엔진 (Relation Engine)
- 구문 분석기를 통해 받은 토큰들을 기반으로 DB가 데이터를 찾기 최적의 경로를 탐색해 준다.
- 탐색된 경로를 바탕으로 조회, 저장등의 기능을 위한 계획을 세운다.
- 스토리지 엔진
- 실제 물리 저장 장치에 접근하여 관계형 엔진에서 만든 계획대로 작업을 수행한다.
- 물리 저장 장치에 있는 파일에 데이터를 저장하고 조회한다.
- 완료시에 스토리지 엔진이 SQL Layer(Parser와 Relation Engine 이 해당 영역에 포함된다.)에 반환하면 SQL Layer에서 에플리케이션에 결과를 반환한다.
2. MySQL Server
- 오픈소스 관계형 RDBMS 중 하나로 전세계에서 가장 많이 쓰이는 DBMS 중 하나이다.
- MySQL Server 는 크게 MySQL Engine과 Storage Engine으로 구성되어 있다.
- 여기서 중요한 점은 하나의 쿼리는 여러개의 하위 쿼리로 나뉘는데 이 하위 쿼리가 어느 영역에서 처리되는지 알아야한다.
- Architecture

- MySQL Server는 모든 언어에서 MySQL 서버로 쿼리를 사용할 수 있도록 지원한다. (SQL Interface)
- Storage Engine 의 경우 여러개를 둘 수 있지만, MySQL Engine은 오직 하나만 사용한다.
- Storage Engine을 통해 저장되는 실질적인 저장장치는 운영체제 하드웨어의 디스크이다.
2. MySQL Engine 이란?
- MySQL Engine은 MySQL Server에서 두뇌역할을 맡는다.