将MySQL表和数据从存储引擎MyISAM移动到InnoDB

Aak*_*ash 5 mysql myisam innodb

这个问题可能适用于之前已完成此类迁移的MySQL专家和管理员.

我在MyISAM存储引擎上有17个MySQL表,触发器和存储过程.这些表共有大约8个MiB数据.由于我正在将应用程序和数据库移动到Amazon EC2和RDS,因此我想知道将表从MyISAM迁移到InnoDB时的关键考虑因素.

我将要经历的步骤大致如下.

  1. AWS RDS上的系统表必须在MyISAM上,因此不会对此提出质疑.
  2. 创建17个具有与MyISAM上相同结构的表,并在RDS InnoDB中构建它们.
  3. 从MyISAM表导出数据并将其导入到InnoDB上的RDS中创建的新表中.
  4. 在InnoDB数据库中创建触发器,存储过程和函数.

当我在MySQL存储引擎中询问有关迁移的关键注意事项时,我想从有经验的管理员的角度来了解,如果在数据迁移期间明确需要在数据库级别处理某些事情,那么数据库的行为它应该的方式,没有毛刺.我担心的主要是因为我读到InnoDB和MyISAM的缓冲方式,I/O,CPU和内存使用情况不同.

我很乐意接受你在这个过程中的2美分.

谢谢.

*更新*

innodb_buffer_pool_size - {DBInstanceClassMemory*3/4}这就是它现在设置的内容.

我也在寻找其他参数.如果您想查看为任何其他特定参数设置的值,请​​告诉我.

ova*_*riq 2

MyISAM 和 InnoDB 之间有很多差异,但在迁移之前您应该注意的要点。 1. 数据备份不能像 MyISAM 那样通过简单地复制文件来完成 2. InnoDB 在运行时不会以优化的方式工作使用默认选项,您必须根据您的需要进行配置和调整。3. InnoDB 没有像 MyISAM 这样的压缩索引,因此会占用更多空间 4. InnoDB 自动将主键列附加到辅助键。因此请确保主键列不大。,

除此之外,迁移应该很容易。1、创建与MyISAM结构类似的表,只是将引擎改为InnoDB。2. 从MyISAM表中转储数据 3. 在InnoDB引擎中以主键顺序导入数据,将导入包装在START TRANSACTION和COMMIT之间,这是加载数据的最快方式。4. 创建存储过程和触发器。但它们与存储引擎无关。

如果您需要 InnoDB 配置方面的任何帮助,可以告诉我。