从MyISAM切换到InnoBD时,我使用了默认设置。阅读完优化提示后,我意识到每个表在单独的文件中更好。如何将表从一个文件传输到每个表模式的单独文件中?
答案 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=InnoDB
或ALTER TABLE <tablename> FORCE
。
答案 1 :(得分:0)
有关转化的更多提示:http://mysql.rjweb.org/doc.php/myisam2innodb
你可能必须这样做:
SET GLOBAL innodb_file_per_table = 1;
ALTER ...
我更喜欢大表file_per_table,而不是ibdata1中的小表。