.ibd 文件
大小可变
大小可变
→
表空间 Tablespace
Space ID
Space ID
→
段 Segment
1MB × N
1MB × N
→
区 Extent
1MB = 64页
1MB = 64页
→
页面 Page
16KB
16KB
INDEX 索引页
INODE 索引节点
SDI 数据字典
LOB_DATA 大对象
ALLOCATED 空闲页
🗂️ .ibd 文件是什么?
.ibd(InnoDB Data File)是 MySQL InnoDB 引擎 特有的表空间文件。
- 每个表一个 .ibd 文件(默认开启
innodb_file_per_table) - 存储表的数据和索引
- 文件大小随数据量动态增长
- 路径:
datadir/database/table.ibd
🏗️ 文件内部结构
- 表空间(Tablespace):最高层,有唯一 Space ID
- 段(Segment):分叶子段、非叶子段、Undo段
- 区(Extent):64个连续页面 = 1MB
- 页面(Page):最小IO单位 = 16KB
📄 页面(Page)类型
- FIL_PAGE_INDEX (17855):B+树节点页
- FIL_PAGE_INODE (17817):段索引节点
- FIL_PAGE_SDI (17882):序列化字典信息
- FIL_PAGE_LOB_DATA:大对象数据页
- FIL_PAGE_TYPE_ALLOCATED (0):未分配空闲页
- FIL_PAGE_UNDO_LOG:Undo 日志页
⚙️ 相关 MySQL 参数
innodb_page_size:页面大小,默认 16KBinnodb_file_per_table:每表独立 .ibdinnodb_buffer_pool_size:Buffer Pool 大小