MySQL更改引擎大百万行表
我想将200万行表的引擎从MyISAM更改为InnoDB。我害怕这个长时间的操作,所以我创建了类似结构的InnoDB表,现在我想将所有数据从旧表复制到新表。最快的方法是什么?选择插入?开始交易怎么样?请帮忙。我不想挂起我的服务器。帮你自己一个忙:把整个设置复制到你的本地机器上,然后在那里全部试用。你会对自己的处境有更好的了解。请注意生产服务器和本地计算机之间的硬件潜在差异 最快的方法可能是最直接的方法:MySQL更改引擎大百万行表,mysql,innodb,Mysql,Innodb,我想将200万行表的引擎从MyISAM更改为InnoDB。我害怕这个长时间的操作,所以我创建了类似结构的InnoDB表,现在我想将所有数据从旧表复制到新表。最快的方法是什么?选择插入?开始交易怎么样?请帮忙。我不想挂起我的服务器。帮你自己一个忙:把整个设置复制到你的本地机器上,然后在那里全部试用。你会对自己的处境有更好的了解。请注意生产服务器和本地计算机之间的硬件潜在差异 最快的方法可能是最直接的方法: INSERT INTO table2 SELECT * FROM table1; 我怀疑你
INSERT INTO table2 SELECT * FROM table1;
我怀疑你做这件事的速度不可能比圣坛内置的更快。它必须复制所有数据并重建所有索引 确保已启动
innodb\u buffer\u pool\u size
以准备innodb。并降低键缓冲大小以留出空间。分别建议35%和12%的RAM用于过渡。所有表转换后,建议使用70%和20MB
一个轻微的加速是执行一些select操作,获取整个表和整个主键(如果可以缓存的话)。这将在真正开始之前执行一些I/O。示例:从tbl中选择平均值(id),其中id是主键。和从tbl中选择平均值(foo),其中foo没有索引,但为数值。这将强制对PK索引和数据进行完整扫描,从而缓存ALTER
必须读取的内容
转换的其他提示:。安排停机时间。