InnoDB 스토리지 엔진의 디스크 저장 구조부터 인덱스, 트랜잭션, 락, EXPLAIN까지 — RDBMS의 내부를 하나씩 추적하는 시리즈
MySQL에서 INSERT를 실행하면 데이터는 어디에, 어떤 형태로 저장되는가? InnoDB의 페이지 구조, Buffer Pool, 그리고 WAL(Redo/Undo Log)까지 — 디스크 I/O를 최소화하면서 데이터 무결성을 보장하는 구조를 추적합니다.
인덱스를 걸면 빨라진다는 건 알지만, 왜 빠른지 설명할 수 있는가? B+Tree의 구조, 클러스터드 인덱스와 세컨더리 인덱스의 차이, 커버링 인덱스가 디스크 접근을 줄이는 원리, 복합 인덱스의 최좌선 규칙까지 정리합니다.
READ COMMITTED와 REPEATABLE READ의 차이를 코드 없이 설명할 수 있는가? InnoDB의 MVCC가 Undo Log 체인과 Read View로 어떻게 동작하는지, 격리 수준별로 어떤 이상 현상이 허용되는지 추적합니다.
MVCC가 읽기-쓰기 충돌을 해결한다면, 락은 쓰기-쓰기 충돌을 해결한다. InnoDB의 레코드 락, 갭 락, 넥스트키 락이 각각 어떤 문제를 방지하는지, 데드락은 왜 발생하고 어떻게 감지되는지 추적합니다.
EXPLAIN의 type이 ALL이면 무조건 나쁜 건가? rows는 정확한 숫자인가? 1-4편의 내부 구조 지식을 바탕으로, EXPLAIN 각 컬럼의 의미와 느린 쿼리를 진단하고 개선하는 실전 접근법을 정리합니다.