如何更改" innodb_file_per_table"参数来自" OFF"到" 1"对于现有数据库?

时间:2017-04-23 13:54:30

标签: mysql innodb mariadb

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

2 个答案:

答案 0 :(得分:3)

如果您使用的是MariaDB 10.x,那么innodb_file_per_table=1是默认设置,因此只要您使用默认设置,您的新InnoDB表以及从MyISAM转换为InnoDB的表将具有单独的表空间。 / p>

如果您使用的是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

答案 1 :(得分:0)

有关转化的更多提示:http://mysql.rjweb.org/doc.php/myisam2innodb

可能必须这样做:

SET GLOBAL innodb_file_per_table = 1;
ALTER ...

我更喜欢大表file_per_table,而不是ibdata1中的小表。