也可以在运行时利用SET GLOBAL语句进行配置:SETGLOBAL innodb_file_per_table=ON;,在运行时更改设置需要足够的权限来设置全局体系变量。
General Tablespace
https://dev.mysql.com/doc/refman/8.4/en/general-tablespaces.html
翻译为通用表空间,通用表空间是利用CREATE tablespace语法创建的共享InnoDB表空间。其具体文件在 MySQL 数据库的数据目次中是以.ibd结尾的文件。跟体系表空间雷同,它支持所有 MySQL 数据库中的数据表的布局,它是将数据库的一些元数据保存在内存之中,进而能够减少独立表空间对于内存的消耗。
Undo Tablespace
Undo 表空间重要是用来保存撤销日志Undo Log的表空间。它默认情况下存储在 MySQL 数据库的根目次。我们可以通过以下方式来查看:
mysql> SHOW VARIABLES LIKE 'innodb_undo_directory';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_undo_directory | ./ |
+-----------------------+-------+
1 row in set (0.00 sec)
复制代码
在MySQL 8.0版本之后,undo 表空间会在 MySQL 数据库的数据根目次天生 undo_001 和 undo002 共两个文件,如下所示
临时表空间
临时表空间重要是用来保存数据库会话中的临时数据的。在 MySQL 数据库的数据根目次中保存以ibtmp1定名的文件。最重要的是我们在利用 join 连表查询的时间,会在临时表空间内创建临时数据表用来辅助查询。我们可以通过以下方式来查看临时表空间的配置: