[10분 테코톡] 아코의 MySQL 아키텍처

youngkyu MIn·2023년 10월 19일

movie

MySQL Architecture

  • MySQL Server 는 크게 MySQL Engine, Storage Engine 으로 구성되어있다.
  • MySQL Engine : 요청을 처리해줌
  • Storage Engine : 실제 필요한 데이터를 하드웨어에서 가져옴

MySQL Engine

-> 요청이 들어옴
-> 쿼리 파서 동작
사용자로부터 입력 받은 SQL 문장을 분석하고 파싱
SQL 문장의 구문을 체크하고, 문장을 여러 개의 토큰으로 분리
-> 옵티마이저 동작
파싱된 쿼리의 실행 계획을 최적화
사용 가능한 여러 실행 전략 중에서 가장 효율적인 방식을 선택
이 과정에서 인덱스 사용, 조인 순서, 데이터 검색 방법 등의 여러 요소를 고려


Storage Engine - MySQL 의 기본 Storage Engine 은 InnoDB

InnoDB

  • 특징 : 버퍼 풀, MVCC

  • 버퍼 풀 :
    버퍼 풀은 메인 메모리의 한 영역으로 테이블과 인덱스 데이터를 캐싱해두는 공간
    Page 단위로 데이터를 관리
    Linked List 형태 LRU 알고리즘을 통한 관리 ( LRU - 최근에 가장 사용이 적은 데이터가 탈락 )

  • MVCC :
    원본 데이터를 여러 버전으로 관리하여 동시성을 처리하는 방법
    InnoDB는 MVCC 를 구현하기 위해 언두 로그를 호라용


!! 추가 공부 !! 언두로그, LRU 알고리즘 ...
profile
한 줄 소개

0개의 댓글