默认,所有innodb的table和indexcu存储在system tablespace(共享表空间)。也可以把table跟index存在自己的数据文件中,这种特性叫file-per-table tablespace(独立表空间)。该特性由 innodb_file_per_table配置项控制。
---
独立表空间优点:
* 当truncate或drop表时,可以回收对应的硬盘空间。而共享表空间遇到同样操作时,只在数据文件内部清理出空闲空间给新的innodb数据。
* 独立表空间操作truncate更快
* 可以把具体的表存储到不同的存储设备上(i/o优化,空间管理,数据备份)
* 使用OPTIMIZE_TABLE创建独立表空间。innodb据此创建临时命名的新ibd文件,只需要必备的存储空间
* 使用barracuda文件格式,独立表空间具有可压缩及动态增长的特性
* 动态增长使得blob或text字段存储更高效
* 使用独立表空间,备份数据更快
* 数据崩溃时,独立表空间的数据恢复成功几率更高
* 在不借助mysql的情况下,在系统文件层级即可监控数据表大小
* 共享表空间有64TB的存储上限,每个独立表空间都有64TB的存储上限。