[Real Mysql8] 4.1 MySQL 의 엔진 아키텍처

박상준·2024년 3월 13일
1

mysql

목록 보기
1/8

MySQL 의 엔진 아키텍처

  • 독특한 구조
  • 프로그래밍 언어를 지원
    • C API 를 포함해 JDBC, ODBC, .NET 드라이버 등 다양한 프로그래밍 언어로 접근이 가능
  • MySQL 엔진과 스토리지 엔진
    • MySQL 서버는 MySQL 엔진과 스토리지 엔진으로 구분됨.
    • 쿼리 파서와 옵티마이저 등의 기능이 포함된다.

MySQL 엔진

  • 커넥션 핸들러, SQL 파서, 옵티마이저가 중심을 이룸.

스토리지 엔진

  • 실제 데이터의 저장과 조회는 스토리지 엔진이 담당함.
  • 특징
    • MySQL 서버는 하나의 MySQL 엔진을 사용하지만, 여러 스토리지 엔진을 동시에 사용할 수 있다.

    • 테이블별로 사용할 스토리지 엔진을 지정이 가능하다.

        CREATE TABLE test_table (fd1 INT, fd2 INT) ENGINE=INNODB;
    • test_table 을 스토리지 엔진을 사용하도록 정의

    • INSERT, UPDATE, DELETE, SELECT 등의 작업은 InnoDB 스토리지 엔진이 처리

  • 성능 향상 기능이 있다.
    1. MyISAM 의 경우
      1. 키 캐시 기능

        키 캐시 기능

        • 인덱스 정보를 메모리에 캐싱하는 기능이다.
        • DB는 인덱스를 디스크에서 직접 읽는 대신, 메모리에서 빠르게 접근하여 쿼리 실행 속도를 향상시킬 수 있다.
    2. InnoDB 의 경우
      1. InnoDB 버퍼풀 기능

        버퍼풀 기능

        • 데이터와 인덱스를 메모리에 캐싱하는 기능
        • DB 읽기와 쓰기 작업의 성능을 크게 향상시킨다.
        • Disk I/O 를 줄일 수 있고 전반 DB 성능 향상을 기대할 수 있다.

핸들러 API

  • MySQL 엔진이 데이터를 쓰거나 읽는 경우, 각 스토리지 엔진에 쓰기 또는 읽기를 요청한다.
  • 이러한 요청을 핸들러 요청 이라고 한다.
  • 핸들러 요청에 사용되는 API 를 핸들러 API 라고 한다.

    핸들러 API 의 역할

    • InnoDB 스토리지 엔진을 포함한 다양한 스토리지 엔진들이 MySQL 엔진과 데이터를 주고 받는데에 사용됨.
    • 핸들러 AP I 를 통해 DB 엔진은 스토리지 엔진에 data 를 read 혹은 write 작업을 요청
  • 아래는 핸들러 API 를 통하여 이루어진 데이터(레코드) 의 작업 양이다.
    • 얼마나 호출되었는지 궁금하여 조회해보았다.
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글