MySQL 서버는 크게 MySQL엔진과 스토리지 엔진으로 나뉜다.

쿼리가 실행되면 MySQL 엔진에서 ‘SQL파서 - 전처리기 - 옵티마이저 - SQL실행기’가 처리되고, 스토리지 엔진에서는 ‘데이터 읽기/쓰기’ 작업만 처리된다.

 

* MySQL 엔진 : 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당되는 처리를 수행한다.

    - 파서 : 요청에 의한 쿼리를 토큰으로 분리해 MySQL이 인식할 수 있는 트리 형태의 구조로 만들어 내고, 기본 문법 오류가 이 과정에서 발견된다.

    - 전처리기 : 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인하고, 객체의 존재여부나 접근권한이 이 단계에서 확인된다.

    - 옵티마이저 : 요청에 의한 쿼리를 저렴한 비용으로 빠르게 처리하는 방법을 결정하는 역할을 담당한다.

    - 실행 엔진 : 각 핸들러에게 요청해서 받은 결과를 또 다른 핸들러 요청의 입력으로 연결하는 역할을 담당한다.

    - 핸들러 (스토리지 엔진) : MySQL실행 엔진의 요청에 따라 데이터를 디스크로 저장하고 읽어오는 역할을 담당한다.

    ㄴ (핸들러 API : 쿼리 실행기에서 각 스토리지 엔진에게 데이터 쓰기, 읽기를 요청(핸들러요청)할 때 사용되는 API이다.)

 

* 스토리지 엔진 : 실제 데이터를 디스크 스토리지에 저장하거나 읽어오는 역할을 수행한다.

 

 

참고 : realmysql

Print Friendly and PDF Posted by JJ*
: