⚡ 핵심 한 줄 요약 [기초]


MySQL = "생각하는 부분(MySQL 엔진)" + "움직이는 부분(스토리지 엔진)"

마치 자동차의 내비게이션(경로 계산)실제 엔진(주행) 이 분리된 것처럼, SQL 분석·최적화와 실제 데이터 읽기·쓰기를 분리해서 설계했다. 덕분에 창고 직원(스토리지 엔진)만 교체해도 나머지 시스템은 그대로 돌아간다.

📖 용어 사전 [기초]


용어 한 줄 풀이 비유
스토리지 엔진 실제 데이터를 디스크에 저장하고 꺼내는 모듈 창고 직원
InnoDB MySQL 기본 스토리지 엔진. 트랜잭션 지원 꼼꼼한 창고 직원 (영수증 꼭 씀)
MyISAM 오래된 스토리지 엔진. 빠르지만 트랜잭션 없음 빠른데 영수증 안 쓰는 직원
옵티마이저 쿼리를 가장 빠르게 실행할 방법을 계획하는 모듈 내비게이션 경로 계산
파서(Parser) SQL 문장을 문법적으로 분석해 트리 구조로 변환하는 모듈 문장을 주어·동사로 쪼개는 국어 선생님
파스 트리 SQL 문장을 컴퓨터가 이해하는 트리 구조로 바꾼 것 문장을 단어·문법으로 쪼갠 구조도
전처리기 파스 트리를 보고 테이블·컬럼 존재 여부 등을 확인하는 모듈 주문서에 있는 메뉴가 실제 메뉴판에 있는지 확인하는 직원
핸들러 API MySQL 엔진과 스토리지 엔진이 대화하는 규격 USB 규격 (이 규격만 맞으면 어떤 기기든 연결)
버퍼 풀 디스크에서 읽은 데이터를 메모리에 캐시해두는 공간 책상 위에 꺼내둔 자주 쓰는 책 모음
트랜잭션 여러 작업을 하나로 묶어서 전부 성공 or 전부 실패시키는 것 계좌이체 (출금·입금이 하나의 묶음)
MVCC 읽기와 쓰기가 서로 안 막히도록 버전을 여러 개 유지하는 기술 구글 독스 편집 중에도 다른 사람이 이전 버전 열람 가능
카디널리티 컬럼에 얼마나 다양한 값이 있는지 나타내는 수치 성별(2가지) vs 주민번호(수백만 가지)
실행 계획 옵티마이저가 쿼리를 어떻게 실행할지 정한 계획서 요리 레시피
인덱스 데이터를 빠르게 찾기 위한 색인 책 뒤의 찾아보기 페이지
포그라운드 스레드 클라이언트 요청을 직접 처리하는 스레드 고객 응대하는 홀 직원
백그라운드 스레드 내부 작업(로그 기록, 데이터 플러시 등)을 처리하는 스레드 창고 정리·재고 보충하는 뒷방 직원
OOM Out of Memory. 메모리 부족으로 프로세스가 강제 종료되는 상황 책상이 꽉 차서 새 책을 올려놓을 수 없는 상황
EXPLAIN 쿼리의 실행 계획을 보여주는 MySQL 명령어 내비게이션 경로 미리보기
플러시(Flush) 메모리에 있는 데이터를 디스크에 실제로 기록하는 것 임시 메모를 공식 문서에 옮겨 적기
Redo Log 장애 발생 시 복구를 위한 변경 내역 기록 파일 블랙박스 영상
쿼리 캐시 동일 SQL의 결과를 메모리에 저장해두던 기능 (8.0에서 제거) 같은 주문이 오면 이미 만든 음식을 그냥 주는 것

1. MySQL 전체 구조 [기초] [면접]


🍽️ 비유로 먼저 이해하기

손님 (클라이언트)
  └─ "스테이크 미디엄으로 주세요" (SQL 쿼리 전송)

웨이터 (커넥션 핸들러)
  └─ 주문을 받아서 주방에 전달

주방장 (옵티마이저)
  └─ 어느 재료를 먼저 꺼내고, 어느 순서로 요리할지 결정 (실행 계획 수립)

요리사 (실행 엔진)
  └─ 주방장 지시대로 실제 요리 진행

창고 직원 (스토리지 엔진: InnoDB / MyISAM 등)
  └─ 실제 냉장고(디스크)에서 재료를 꺼내거나 집어넣음

🗂️ 구조도 (ASCII)

image.png

🔍 기술 설명

MySQL은 크게 두 레이어로 나뉜다.

MySQL 엔진: SQL을 받아서 처리하는 두뇌 역할. 파서 → 전처리기 → 옵티마이저 → 실행 엔진 순서로 동작한다. SQL을 어떻게 실행할지 결정하지만, 실제로 데이터를 건드리지는 않는다.

스토리지 엔진: 실제로 데이터를 읽고 쓰는 손발 역할. InnoDB, MyISAM 등 여러 종류가 있으며, 테이블 단위로 다르게 선택할 수 있다.

💡 왜 이렇게 설계했을까?

교체 가능성이 핵심이다. 두 레이어 사이에 핸들러 API라는 규격이 있어서, 이 규격만 맞추면 누구나 새로운 스토리지 엔진을 만들어 꽂을 수 있다. MySQL 코어(엔진)를 전혀 건드리지 않고 저장 방식만 교체할 수 있다.