
MySQL에서 쿼리가 실행되는 과정은 위와 같은 구조로 간략하게 표현할 수 있다.
쿼리 파서는 쿼리 문장을 토큰으로 분리해 파서 트리를 생성한다. 이 과정에서 쿼리 문장의 기본 문법 오류가 발견되면 사용자에게 오류 메시지가 전달된다.
파서 트리를 기반으로 쿼리에 구조적인 문제점이 있는지 확인한다. 각 토큰의 테이블 이름이나 칼럼 이름, 내장 함수 등을 매핑하고 해당 객체의 존재 여부 및 접근 권한 등을 확인한다. 존재하지 않거나 권한이 없는 개체의 토큰은 걸러지게 된다.
사용자 요청을 가장 저렴하고 빠르게 처리할 수 있도록 쿼리를 변환하고 비용을 최적화하며, 실행 계획을 수립한다.
옵티마이저가 구성한 실행 계획대로 각 핸들러에게 요청을 보내고, 해당 결과를 또 다른 핸들러 요청의 입력으로 연결하는 역할을 수행한다.
실행 엔진이 보낸 핸들러 요청에 따라 디스크 I/O를 수행한다.