[MySQL] 쿼리 실행 구조

신찬규·2024년 4월 6일

MySQL

목록 보기
5/13

MySQL에서 쿼리가 실행되는 과정은 위와 같은 구조로 간략하게 표현할 수 있다.

1. 쿼리 파서

쿼리 파서는 쿼리 문장을 토큰으로 분리해 파서 트리를 생성한다. 이 과정에서 쿼리 문장의 기본 문법 오류가 발견되면 사용자에게 오류 메시지가 전달된다.

2. 전처리기

파서 트리를 기반으로 쿼리에 구조적인 문제점이 있는지 확인한다. 각 토큰의 테이블 이름이나 칼럼 이름, 내장 함수 등을 매핑하고 해당 객체의 존재 여부 및 접근 권한 등을 확인한다. 존재하지 않거나 권한이 없는 개체의 토큰은 걸러지게 된다.

3. 옵티마이저

사용자 요청을 가장 저렴하고 빠르게 처리할 수 있도록 쿼리를 변환하고 비용을 최적화하며, 실행 계획을 수립한다.

4. 실행 엔진

옵티마이저가 구성한 실행 계획대로 각 핸들러에게 요청을 보내고, 해당 결과를 또 다른 핸들러 요청의 입력으로 연결하는 역할을 수행한다.

5. 스토리지 엔진

실행 엔진이 보낸 핸들러 요청에 따라 디스크 I/O를 수행한다.

참고 자료

  • Real MySQL 8.0, 백은빈, 이성욱 지음
profile
느려도 조금씩 꾸준하게

0개의 댓글