
MySQL서버는 MySQL엔진과 스토리지엔진으로 나누어져있다.
MySQL엔진은 쿼리 파서, 전처리기, 옵티마이저, 쿼리 실행기등을 가지고 있고 스토리지 엔진은 InnoDB, MyISAM등의 종류가 있다.
1. 쿼리 파서
쿼리 파서는 사용자 요청으로 들어온 쿼리를 MySQL이 인식할수있는 최소 단위인 토큰으로 분리해 트리 형태의 구조로 만들어낸다. 쿼리의 문법 오류등은 이 과정에서 발견된다.
2. 전처리기
파서 트리를 기반으로 쿼리 문장에 문제점이 있는지 확인한다. 테이블 이름, 칼럼 이름등이 실제로 존재하는지 접근할 수 있는지의 과정을 이 단계에서 수행한다.
3. 옵티마이저
DBMS의 두뇌로 쿼리를 가장 저렴한 비용으로 탐색할 수 있는 경로를 찾아낸다.
4. 실행엔진
실행엔진은 옵티마이저가 만든 계획대로 핸들러에게 명령을 함으로서 결과를 산출한다. 실행엔진이 핸들러에게 임시 테이블을 만들라고 요청하거나 WHERE절에 일치하는 레코드를 읽어오라고 하거나 요청을 하여 결과를 산출하고 사용자에게 반환한다.
5. 핸들러 (스토리지 엔진)
핸들러는 실행 엔진의 요청에 따라 디스크에 데이터를 저장하거나 디스크로부터 읽어온다. 핸들러는 InnoDB등의 스토리지 엔진을 의미한다. InnoDB테이블을 조작할때는 InnoDB 스토리지엔진이 핸들러가 되고 MyISAM 테이블을 조작할때는 MyISAM 스토리지엔진이 핸들러가 된다.
'데이터베이스 > RDB' 카테고리의 다른 글
| ORDER BY (정렬) (0) | 2026.03.15 |
|---|---|
| 풀 테이블 스캔 vs 풀 인덱스 스캔 (0) | 2026.03.15 |
| 바인드 변수의 중요성 (0) | 2026.02.26 |
| 인덱스 스캔 (0) | 2026.01.10 |
| 순차I/O와 랜덤I/O (0) | 2026.01.10 |