MySQL Architecture
[MySQL 운영]/MySQL basic 2021. 1. 29. 14:49 |
MySQL 서버는 크게 MySQL엔진과 스토리지 엔진으로 나뉜다.
쿼리가 실행되면 MySQL 엔진에서 ‘SQL파서 - 전처리기 - 옵티마이저 - SQL실행기’가 처리되고, 스토리지 엔진에서는 ‘데이터 읽기/쓰기’ 작업만 처리된다.
* MySQL 엔진 : 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당되는 처리를 수행한다.
- 파서 : 요청에 의한 쿼리를 토큰으로 분리해 MySQL이 인식할 수 있는 트리 형태의 구조로 만들어 내고, 기본 문법 오류가 이 과정에서 발견된다.
- 전처리기 : 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인하고, 객체의 존재여부나 접근권한이 이 단계에서 확인된다.
- 옵티마이저 : 요청에 의한 쿼리를 저렴한 비용으로 빠르게 처리하는 방법을 결정하는 역할을 담당한다.
- 실행 엔진 : 각 핸들러에게 요청해서 받은 결과를 또 다른 핸들러 요청의 입력으로 연결하는 역할을 담당한다.
- 핸들러 (스토리지 엔진) : MySQL실행 엔진의 요청에 따라 데이터를 디스크로 저장하고 읽어오는 역할을 담당한다.
ㄴ (핸들러 API : 쿼리 실행기에서 각 스토리지 엔진에게 데이터 쓰기, 읽기를 요청(핸들러요청)할 때 사용되는 API이다.)
* 스토리지 엔진 : 실제 데이터를 디스크 스토리지에 저장하거나 읽어오는 역할을 수행한다.
참고 : realmysql
'[MySQL 운영] > MySQL basic' 카테고리의 다른 글
InoDB 잠금 (2) record lock, gap lock, Next Key Lock, Insert Intention Lock, Auto Inc Lock (0) | 2021.01.29 |
---|---|
InoDB 잠금 (1) S락, X락, IS락, IX락 (1) | 2021.01.29 |
MySQL 잠금 (0) | 2021.01.29 |
Transaction isolation level (트랜잭션 격리수준) (0) | 2021.01.29 |
InnoDB Storage Engine 특성 및 구조 (0) | 2021.01.29 |
MySQL Replication 구조 (0) | 2021.01.29 |
MySQL Query cache (~5.7) (0) | 2021.01.29 |
MySQL 스레딩 구조 (0) | 2021.01.29 |
MySQL Memory (서버단위/세션단위) (0) | 2021.01.28 |