본문으로 건너뛰기

쿼리 실행 구조

실행 구조​

파서(Parser)​

실행된 SQL문을 최소 단위로 분리해서 트리를 만든다.
트리를 만들며 기본적인 문법 검사를 수행한다.

전처리기(Preprocessor)​

파서에서 생성한 파서 트리를 바탕으로 SQL문에 구조적인 문제점이 없는지 파악한다.
SQL 구문에 작성된 테이블, 열과 같은 오브젝트가 실제로 존재하는지, 접근 권한이 있는지 확인한다.

옵티마이저(Optimizer)​

파서 트리를 바탕으로 필요하지 않은 조건은 제거하거나 연산 과정을 단순화 시킨다.
테이블의 접근 순서, 인덱스 사용 여부와 같은 실행 계획을 수립한다.

쿼리 실행 엔진(Query Execution Engine)​

옵티마이저에서 수립한 실행 계획을 참고하여, 스토리지 엔진에서 데이터를 가져온다.
MySQL 엔진의 부하를 줄이려면 스토리지 엔진에서 가져오는 데이터양을 줄이는 게 매우 중요하다.

참고 자료​

2장 SQL 튜닝 용어를 직관적으로 이해하기, 업무에 바로 쓰는 SQL 튜닝 - 양바른
16장 복제, Real MySQL 8.0 - 백은빈, 이성욱
https://dev.mysql.com/doc/refman/8.0/en/pluggable-storage-overview.html