改变 TABLE table_name 引擎= / mysql_convert_table_format 哪个更好

ALTER TABLE table_name ENGINE= / mysql_convert_table_format WHICH IS BETTER

我在 MariaDB 中有大型 InnoDB 数据库(每个 > 1T)。我想把它们变成 MyISAM。我可以 google 2 种方法:

https://dev.mysql.com/doc/refman/5.0/en/mysql-convert-table-format.html

http://dev.mysql.com/doc/refman/5.6/en/converting-tables-to-innodb.html

第二个用于 InnoDB,但 arg 可以更改为 MyISAM。

哪个更有效(我已经安装了 mysql_convert_table_format 需要的 Perl 模块)?谢谢!

mysql-convert-table-format 只是一个使用 ALTER TABLE 完成工作的工具。它提供了一个很好的界面和帮助,但除此之外它没有做任何特别的事情。

您可以使用您喜欢的MySQL客户端程序连接到数据库并且运行:

ALTER TABLE table_name ENGINE='MyISAM'

更改table格式(mysql-convert-table-format最终也是这样做的)。

警告!

在更改 table 格式期间,table 将被锁定,即其他查询无法访问。这可能会转化为您的网站没有响应、行为异常甚至离线。

其他选项

pt-online-schema-changePercona Tookit 的一部分,是一种工具,旨在更改大型 table 的 table 定义,同时保持在线状态。它创建一个具有新结构的新 table,然后智能地将数据从旧 table 分块复制到新 table。

我没试过,但我认为它可以帮助你。