每表表空间一个文件包含单个InnoDB表的数据和索引,并存储在文件系统中自己的数据文件中。
本节中的以下主题介绍了每个表的文件表空间特性:
每表文件表空间配置
InnoDB默认情况下,在每个表文件表空间中创建表。此行为由innodb_file_per_table变量控制 。禁用在系统表空间中创建表的innodb_file_per_table 原因InnoDB。
的innodb_file_per_table 设置可以在选项文件来指定,或者使用在运行时配置的 SET GLOBAL语句。在运行时更改设置需要足够的特权来设置全局系统变量。
选项文件:
[mysqld]
innodb_file_per_table=ON
SET GLOBAL在运行时 使用:
mysql> SET GLOBAL innodb_file_per_table=ON;
每表文件表空间数据文件
.idb在MySQL数据目录下的架构目录 中的数据文件中,将创建一个每表文件表空间 。该.ibd文件以表(table_name.ibd)命名。例如,在MySQL数据目录下的目录中test.t1 创建表的数据文件test:
mysql>USE test;
mysql>CREATE TABLE t1 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100)
) ENGINE = InnoDB;
shell>cd /path/to/mysql/data/test
shell>ls
t1.ibd
您可以使用该语句的DATA DIRECTORY子句 CREATE TABLE