Skip to main content

MySQL 엔진 아키텍처

MySQL 엔진 아키텍처

  • MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과 손발 역할을 담당하는 스토리지 엔진으로 구분
  • 스토리지 엔진의 핸들러 API를 만족하면 누구나 스토리지 엔진을 구현해 MySQL 서버에 추가해서 사용 가능

MySQL 엔진

  • 클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러, SQL 파서, 전처리기, 옵티마이저가 중심을 이룸
  • 표준 SQL 문법을 지원해 표준 문법을문법 지켜 작성된 쿼리는 타 DBMS와 호환되어호환되어 실행 가능

스토리지 엔진

  • 실제 데이터를 디스크 스토리지에 저장하거나저장하거나 데이터를 읽어오는 역할을역할 수행

  • MySQL 엔진은 하나만 사용할 수 있지만 스토리지 엔진은 여러 개를 동시에 사용 가능

  • 다음 명령어를 통해 테이블에 사용할 스토리지 엔진을 지정할 수 있음

    CREATE TABLE test_table (fd1 INT, fd2 INT) ENGINE=INNODB;
    

핸들러 API

  • MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽을 때 각 스토리지 엔진에 요청을 하는데 이를 핸들러(Handler) 요청으로 부름