在同一个数据库(MySql)中制作大型Innodb数据库表的副本

时间:2012-08-29 05:38:49

标签: mysql

  

可能重复:
  how to fast copy a large innodb table

我想在同一个数据库中复制我的Innodb表。表包含大约4Million的记录。我想要新的表副本仅用于测试目的。在新复制的表中,我只想略微改变结构(就像我想要删除旧的主键然后创建一个新的复合主键并通过RANGE添加逻辑分区)但内容将保持不变。

我试过Phpmyadmin复制那个innodb表,但是花了太长时间,然后我决定故意杀掉这个过程,因为它占用了服务器资源。

通过结构上的一些更改(删除旧的PK并添加新的复合PK并通过RANGE添加逻辑分区)来制作该表副本的最佳方法是什么?

如果我先复制结构并对其进行必要的更改然后复制数据,有什么办法吗?请记住,该表是Innodb,其中有大约4百万条记录!!!

据我所知,PHPMyadmin不是一个好方法。

1 个答案:

答案 0 :(得分:0)

您可以创建新的表结构并设置PK和索引。

然后使用INSERT ... SELECT查询将其他表中的数据导入新表。

http://dev.mysql.com/doc/refman/5.5/en/insert-select.html