将大型mysql表行复制到新表中

时间:2016-02-13 08:23:47

标签: mysql

我们在mysql 5.6上有大表。现在我们要更改此表的模式。我们不是在现有表上执行alter table,而是将整个表数据复制到新表中。

使用类似以下的查询

insert into new table select * from old table 

表格大小约为350 GB,有4.5亿行。

问题是如何从mysql客户端

运行这种类型的长时间运行的查询
  1. 我应该在后台运行,是否可能,比如nohup。

  2. 如果mysql客户端连接在运行查询的中间退出,会发生什么。

  3. 如果我在使用mysql客户端连接执行命令后关闭笔记本电脑会发生什么

  4. 毕竟我不想打破我的疑问,请提出最佳做法。

1 个答案:

答案 0 :(得分:0)

要实现这一目标,您可以使用Cron。 Cron是用您的编程语言编写的脚本,无需任何用户交互即可在后台执行。所以它是你第一个问题的答案。

在您的服务器上设置此cron。所以不会出现任何中断问题。请为脚本设置一些大的执行时间。这是你第二个问题的答案。

当Cron在服务器上设置时,它将独立于您的任何机器,所以不用担心关闭这是您的第三个问题。

希望这对你有帮助。