원문: InnoDB
이 문서는 On learning InnoDB: A journey to the core를 한글 번역한 문서입니다. 이 문서는 개인적인 학습 및 사용을 목적으로, 원저자(Jeremy Cole)의 허가 하에 번역한 문서입니다.
본 문서는 개인적인 필요에 의해 번역한 문서로, 원문을 직역 및 의역하다 보니 번역에 문제가 있을 수 있습니다. 본 문서보다 원문을 먼저 보시는 걸 권장합니다. 현재 버전은 draft이기 때문에 끊임없이 수정 중입니다. 번역과 관련한 문제점 및 수정 제안은 언제든지 환영합니다.
InnoDB 핵심을 이해하기 위한 여행 시작: innodb_ruby
및 innodb_diagrams
프로젝트 소개
innodb_ruby 빠르게 훑어보기: innodb_ruby
설정 방법 및 기능 데모
Space 파일 레이아웃 기초: InnoDB가 space 파일 및 그 안의 페이지들을 어떻게 구성하는지 소개
InnoDB Space 파일의 페이지 관리 방법: Space 파일 내의 파일 segment, extent 및 페이지 관리와 관련된 구조 소개
innodb_ruby로 InnoDB의 페이지 관리 방법 직접 확인해보기: 실제 InnoDB Space 파일의 페이지 관리 데이터 구조를 인터랙티브하게 탐색
InnoDB 인덱스 페이지의 물리적 (physical) 구조: InnoDB 인덱스 페이지에 대한 설명, 데이터가 저장되는 장소 및 레코드가 저장되는 방법 소개
InnoDB의 B+Tree 인덱스 구조: InnoDB B+Tree 인덱스와 그 효율성에 대해 논리적으로, 하이 레벨에서 탐색
InnoDB 레코드의 물리적 (physical) 구조: InnoDB가 행 (row)을 저장하는 형식을 로우 레벨로 설명
페이지 디렉토리를 사용해 InnoDB B+Tree를 효율적으로 탐색하기: InnoDB에서 B+Tree를 탐색할 때의 효율성을 자세히 확인
InnoDB 데이터 스토리지에 대한 연구 중에 발견된 InnoDB 버그: 연구 중에 발견된 7가지 버그에 대한 설명
Primary Key가 없는 경우, InnoDB는 어떻게 동작할까?: 적절한 Primary Key가 없는 테이블에서 사용되는, InnoDB의 암시적인 (implicit) ROW_ID 컬럼에 대한 논의
InnoDB Tidbit: Doublewrite 버퍼가 32 페이지를 낭비함 (512 KiB): InnoDB에서 사용하는 파일 segment 할당 방식 소개 및 InnoDB system tablespace에서 512 KiB를 낭비하게 만든 게으른 프로그래밍 방식에 대한 논의
InnoDB UNDO 로깅 및 히스토리 시스템 기초: 다중 버전 동시성 제어 (multi-version concurrency control, MVCC), undo 로깅, InnoDB의 히스토리 시스템에 대한 소개 및 이들이 서로 어떤 연관이 있는지에 대해 간단히 설명
InnoDB 멀티 버전 관리 (multi-versioning)에 대한 재밌는 사실: 멀티 버전 및 InnoDB 히스토리 시스템의 “숨겨진” 효과에 대한 흥미로운 사실 소개
더 작은 페이지 크기를 갖는 InnoDB는 최대 6%의 디스크 공간을 낭비한다: 각 extent에 대한 InnoDB의 필수 부기 정보는 많은 페이지를 낭비하고, 페이지 크기를 줄이면 (4K 또는 8K로) 더 많이 낭비한다는 사실 소개
InnoDB에서 ordered vs. random 인덱스 삽입의 영향을 시각화하기: innodb_space
의 space-lsn-age-illustrations
및 space-extents-using
모드를 사용하여 인덱스 생성 방식의 효율성을 시각화
These posts are translated into Korean with the original author’s (Jeremy Cole) permission. Thanks for his effort and sharing.