💡 핵심 한 줄 요약


InnoDB는 "은행 금고 시스템"이다. 데이터를 빠르게 꺼내고(버퍼 풀), 실수해도 되돌리고(언두 로그), 장애가 나도 복구하고(리두 로그), 동시에 여러 사람이 써도 충돌 없이(MVCC) 동작하도록 설계된 MySQL의 핵심 스토리지 엔진.

image.png

<aside> 🐰

InnoDB는 결국 디스크 기반인데도 메모리처럼 빠르게 보이게 만들려고 버퍼 풀 + 로그 구조로 최적화한 엔진 인 것 같아요.

</aside>

📚 용어 사전


용어 한 줄 풀이 비유
InnoDB MySQL 기본 스토리지 엔진 은행의 금고 운영 시스템
클러스터드 인덱스 PK 기준으로 데이터를 물리적으로 정렬 저장 도서관에서 책을 번호순으로 꽂아두는 것
세컨더리 인덱스 PK를 논리 주소로 사용하는 보조 인덱스 책 제목으로 찾는 색인 → 번호 확인 → 책장 이동
MVCC 여러 버전의 데이터를 유지해 잠금 없이 읽기 제공 구글 문서의 버전 히스토리
언두 로그 변경 전 데이터를 백업해두는 로그 수정 전 문서를 임시 저장해두는 것
리두 로그 변경 후 내용을 먼저 기록하는 로그 (WAL) 공사 일지 — 뭘 했는지 먼저 적어두기
버퍼 풀 디스크 데이터를 메모리에 캐시하는 공간 책상 위에 꺼내놓은 자주 쓰는 서류들
더티 페이지 메모리에서 수정됐지만 아직 디스크에 안 쓴 페이지 메모는 했지만 아직 서랍에 정리 안 한 서류
플러시 더티 페이지를 디스크에 동기화하는 작업 메모한 내용을 서랍에 정리하는 것
체인지 버퍼 인덱스 변경 작업을 임시 저장했다가 나중에 병합 택배 물류센터에 모아뒀다가 한꺼번에 배송
어댑티브 해시 인덱스 InnoDB가 자주 쓰는 데이터에 자동 생성하는 해시 인덱스 자주 찾는 연락처를 즐겨찾기에 등록
Double Write Buffer 더티 페이지 손상 방지를 위한 이중 기록 버퍼 중요 서류를 원본 + 사본으로 보관
LRU 리스트 최근에 사용된 페이지를 관리하는 자료구조 최근 사용한 앱 목록
Free 리스트 비어있는 버퍼 풀 페이지 목록 비어있는 책상 서랍 목록
격리 수준 (Isolation Level) 트랜잭션 간 데이터 접근을 얼마나 격리할지 설정 독서실 칸막이 높이

🏗️ 개념 설명


1. 프라이머리 키에 의한 클러스터링

2. 외래 키 지원