ibd
是 MySQL InnoDB
存储引擎使用的 独立表空间文件(.ibd
文件)的扩展名。它主要用于存储 表的数据和索引。以下是关于 .ibd
文件的详细介绍:
1. .ibd
文件的作用
在 MySQL InnoDB
存储引擎中,每个表的表空间可以存储在以下两种方式之一:
- 共享表空间(
innodb_file_per_table=OFF
):所有InnoDB
表的数据和索引存储在ibdata1
共享文件中。 - 独立表空间(
innodb_file_per_table=ON
):每个表的数据和索引存储在xxx.ibd
文件中(默认开启)。
当 innodb_file_per_table=ON
时,MySQL 会为每个 InnoDB
表创建一个 .ibd
文件。
2. .ibd
文件存储内容
一个 .ibd
文件通常包含:
- 表的数据(Data)
- 表的索引(包括主键索引和二级索引)
- 表的行格式信息
- 回滚段(undo log)
- 事务日志信息
当你使用 SHOW CREATE TABLE
,你会发现 ENGINE=InnoDB
的表默认启用了 .ibd
作为存储文件。
3. .ibd
文件的位置
.ibd
文件默认存放在 数据库目录 下。例如:
/var/lib/mysql/my_database/my_table.ibd
如果你在 MySQL 里创建一张表:
CREATE TABLE my_table (
id INT PRIMAR