모종닷컴

MySQL 아키텍처 본문

Programming/데이터베이스

MySQL 아키텍처

모종 2022. 7. 19. 23:52
반응형

MySQL 서버는 사람의 머리역할을 담당하는 MySQL 엔진과 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다. 그리고 손과 발의 역할을 담당하는 스토리지 엔진은 핸들러 API를 만족하면 누구든지 스토리지 엔진을 구현해서 MySQL 서버에 추가해서 사용할 수 있다.

MySQL 아키텍처

MySQL 서버는 일반적인 다른 DBMS에 비해 구조가 살짝 독특하다. 이러한 구조는 다른 DBMS에서는 가질 수 없는 이점도 있지만 반대로 문제가 되기도 한다.

아래의 사진에서 SQL 파서, SQL 옵티마이저, 캐시 & 버퍼, CRUD 인터페이스와 + 보이지는 않지만 커넥션 핸들러를 포함하여 MySQL 엔진이라 부르며, MySQL 엔진 + 스토리지 엔진 = MySQL 서버라 부른다. 아래 파일 시스템 부분은 운영체제 하드웨어이다.

MySQL 아키텍처

MySQL 엔진

MySQL 엔진은 클라이언트로부터 접속 및 쿼리 요청을 처리하는 커넥션 핸들러, SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다.

스토리지 엔진

MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행한다면, 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 담당한다. MySQL 엔진은 서버에서 하나지만 스토리지 엔진은 여러 개를 동시에 사용할 수 있다.

핸들러 API

MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽어야 할 때는 스토리지 엔진에 쓰기 또는 읽기를 요청하는데, 이러한 요청을 핸들러 요청이라 하고, 여기서 사용되는 API를 핸들러 API라고 한다. InnoDB 스토리지 엔진 또한 이 핸들러 API를 이용해 엔진과 데이터를 주고받는다.

 

반응형

'Programming > 데이터베이스' 카테고리의 다른 글

MySQL 메모리 할당 및 사용 구조  (0) 2022.07.22
MySQL 스레딩 구조  (0) 2022.07.19
N+1 Selects 문제  (0) 2018.11.13
마이바티스 - insert할 때 주의사항  (3) 2018.11.13
Transaction Isolation Level  (0) 2018.11.08