MySQL Architecture
-> 요청이 들어옴
-> 쿼리 파서 동작
사용자로부터 입력 받은 SQL 문장을 분석하고 파싱
SQL 문장의 구문을 체크하고, 문장을 여러 개의 토큰으로 분리
-> 옵티마이저 동작
파싱된 쿼리의 실행 계획을 최적화
사용 가능한 여러 실행 전략 중에서 가장 효율적인 방식을 선택
이 과정에서 인덱스 사용, 조인 순서, 데이터 검색 방법 등의 여러 요소를 고려
InnoDB
특징 : 버퍼 풀, MVCC
버퍼 풀 :
버퍼 풀은 메인 메모리의 한 영역으로 테이블과 인덱스 데이터를 캐싱해두는 공간
Page 단위로 데이터를 관리
Linked List 형태 LRU 알고리즘을 통한 관리 ( LRU - 최근에 가장 사용이 적은 데이터가 탈락 )
MVCC :
원본 데이터를 여러 버전으로 관리하여 동시성을 처리하는 방법
InnoDB는 MVCC 를 구현하기 위해 언두 로그를 호라용