一、InnoDB
表空间是可以存储一个或多个
InnoDB
表和相关索引的数据文件。
InnoDB
使用以下
类型的表空间:
1.数据表空间
(1). 系统表空间:InnoDB 在系统表空间中存储元数据和缓冲区,这是一个单一的逻辑存储区,包含数据目录中的一个或多个文件,每个文件可以是常规文件或裸设备分区;
(2). 单表文件表空间:默认启用,包含来自单个表的数据和索引;
(3). 通用表空间:包含来自多个表的数据和索引,通过指定
TABLESPACE 子句将新表放置在通用表空间中,使用
ALTER TABLE
将表移动到通用表空间;
2.还原(
undo
)表空间
3.临时表表空间
二、在单表文件和通用表空间之间进行选择
1. 单表文件表空间提供以下好处 :
(1). 表压缩:不能在同一个通用或系统表空间中混合压缩和未压缩的表
(2). 空间回收(使用 TRUNCATE
):
InnoDB
删除并重新创建截断的单表文件表空间,将
(3). 可用空间释放回文件系统
2. 通用表空间提供以下好处 :
(1). 删除大量数据的语句的文件系统开销更少 ,例如 DROP TABLE
或
TRUNCATE TABLE
(2). 消耗更少的内存来存储表空间元数据
3. 可以在数据库中混合表空间类型
(1). 一些表使用单表文件表空间
(2). 一些使用通用表空间的表
(3). 多个通用表空间共存