MySQL(InnoDB) 저장 구조 계층
Tablespace (ibd 파일, ibdata1)
└─ Segment (테이블, 인덱스 단위)
└─ Extent (64 Page = 1MB)
└─ Page (16KB, Oracle Block과 동일)

ㄴㄴ
Tablespace (테이블스페이스)
- 테이블스페이스는 실제로 디스크 파일(.ibd, ibdata) 로 존재.
종류:
- System Tablespace (ibdata1) : InnoDB 시스템 메타데이터, undo log 등 저장.
- File-Per-Table Tablespace (.ibd 파일)
- 테이블/인덱스마다 개별 파일이 생김.
- 보통 table_name.ibd 파일.
- 이 안에 해당 테이블의 Segment → Extent → Page 가 들어있음.
- General Tablespace
- 여러 테이블을 한 파일에 담을 수 있는 사용자 정의 테이블스페이스.
Segment (세그먼트)
- InnoDB는 내부적으로 세그먼트라는 개념을 씀 (테이블마다, 인덱스마다).
- 예: customer 테이블을 만들면 → 데이터 세그먼트 + 인덱스별 인덱스 세그먼트 생성.
- InnoDB의 세그먼트도 결국 Extent들의 모임.
Extent (익스텐트)
- 처음에는 테이블/인덱스가 작으면 몇 페이지만 할당하지만, 커지면 Extent 단위로 확장됨.
- 64개의 페이지(= 1MB) 를 묶어서 Extent 라고 함.
- Extent에는 두 종류가 있음:
- Uniform Extent: 64 페이지 전부를 하나의 세그먼트(테이블/인덱스)가 사용.
- Mixed Extent: 작은 오브젝트일 때 여러 세그먼트가 Extent 안의 Page를 나눠 사용.
Page (페이지) = Block
- InnoDB에서 I/O 최소 단위는 Page라고 부름.
- 기본 크기: 16KB (하지만 설정 가능).
- Oracle의 Block 과 동일한 개념.
- 페이지 종류:
- 데이터 페이지 (실제 레코드 저장)
- 인덱스 페이지 (B+Tree 노드 저장)
- Undo/Redo 로그 페이지
- 시스템 페이지 등
'개발기술 > RDB' 카테고리의 다른 글
| 데이터모델링 방법론 : DDD(도메인 주도 설계) (1) | 2025.12.29 |
|---|---|
| DB 마이그레이션 (1) | 2025.11.15 |
| 데이터베이스 쿼리 동작분석 및 튜닝 (2) | 2025.07.14 |
| 데이터베이스 인덱스 종류와 전략 (MYSQL InnoDB) (0) | 2024.12.27 |
| 데이터베이스 스케일 업 & 아웃 (0) | 2024.09.02 |