如何将现有数据库的“innodb_file_per_table”参数从“OFF”更改为“1”?

Dmi*_*riy 4 mysql innodb mariadb

当从MyISAM切换到InnoBD时,我使用了默认设置。阅读优化提示后,我意识到每个表最好放在单独的文件中。如何将表从一个文件传输到每个表模式的单独文件中?

ele*_*nst 5

如果您使用的是 MariaDB 10.x,innodb_file_per_table=1则那里有默认设置,因此只要您使用默认设置,您的新 InnoDB 表和从 MyISAM 转换为 InnoDB 的表就已经具有单独的表空间。

如果您使用的是 MariaDB 5.5,innodb_file_per_table=0则默认情况下。要开始使用单独的表空间,请运行SET GLOBAL innodb_file_per_table = 1;. 从那时起,直到服务器重新启动,所有新创建和更改的 InnoDB 表都将使用此选项。要使该选项永久存在,请将其添加到 cnf 文件中。

要将现有 InnoDB 表转换为单独的表空间,您可以运行 ALTER TABLE <tablename> ENGINE=InnoDBALTER TABLE <tablename> FORCE