본문 바로가기
DB 인사이드 | MySQL Architecture - 8. InnoDB : 동작 원리 앞서 MySQL의 InnoDB Architecture와 그 구성 요소들에 대해 알아보았습니다. 본 문서에서는 해당 내용을 바탕으로 MySQL의 Connection 생성 및 사용자 요청 처리, 주요 Thread의 동작 방식에 대한 내용을 InnoDB 스토리지 엔진 사용을 토대로 설명하도록 하겠습니다. Connection 생성 과정 MySQL의 Connection 생성 및 동작방식은 InnoDB 외 다른 스토리지 엔진에서도 모두 동일합니다. MySQL Server는 하나의 OS 프로세스로 실행되며, 내부적으로 여러 개의 Thread가 동시에 작업을 수행합니다. 이때, MySQL은 자체 Thread 구현 방식을 가지고 있지 않으므로 OS의 Thread 관리 방식에 의존하여 동작합니다. MySQL의 Connec.. 2022. 7. 27.
DB 인사이드 | MySQL Architecture - 7. InnoDB : On-Disk Structure 본 문서에서는 MySQL에 주요 스토리지 엔진인 InnoDB의 On-Disk Structure에 대해 알아보도록 하겠습니다. InnoDB의 디스크 구조 관련 항목은 아래와 같으며, InnoDB는 모든 Data를 디스크 상의 Tablespace라는 논리적인 공간에 저장합니다. Tablespace Table Index Doublewrite Buffer Redo Log Undo Log Tablespace Tablespace는 Data를 저장하는 데 사용되는 가장 큰 논리적 단위이며, 내부적으로 Segment → Extent → Page → Row의 형태로 구성됩니다. MySQL의 Tablespace는 저장하는 데이터의 종류와 방식에 따라 5가지로 분류가 가능한데, 각각의 Tablespace에 대해 알아보도록 .. 2022. 7. 27.
DB 인사이드 | MySQL Architecture - 6. InnoDB : In-Memory Structure 본 문서에서는 주요 스토리지 엔진인 InnoDB Architecture 중 In-Memory Structure에 대해 다루도록 하겠습니다. In-Memory Structure의 주요 구성 요소는 다음과 같으며, 각각 순서대로 알아보도록 하겠습니다. Buffer Pool Change Buffer Adaptive Hash Index Log Buffer Buffer Pool InnoDB Buffer Pool은 테이블 및 인덱스 Data의 캐싱을 목적으로 하는 메인 메모리 영역입니다. Buffer Pool에는 테이블 및 인덱스 Data 뿐만 아니라 아래 그림과 같이 다양한 유형의 Data 역시 캐싱되며 Buffer Pool List를 이용하여 목록을 관리합니다. Buffer Pool을 사용하면 자주 사용하는 D.. 2022. 7. 27.