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

问题描述:

我们在mysql 5.6上有大型表。现在我们想要改变这张表的模式。我们没有在现有表上进行alter table,而是将整个表数据复制到新表中。将大型mysql表行复制到新表中

使用查询类似以下

insert into new table select * from old table 

表的大小大约是350 GB,有4.5亿行。

的问题是如何从mysql客户

  1. 我应该在后台运行,运行此类型的长时间运行的查询,确实有可能,类似的nohup。

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

  3. 会发生什么。如果我关掉我的笔记本电脑使用我的MySQL客户端连接

所有我只是不想打破我查询后执行命令后,请建议最佳实践。

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

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

由于Cron在服务器上设置,它将独立于您的任何机器,因此无需担心关闭这是您的第三个问题。

希望它能帮助你。

+0

其谷歌云服务器。我无法在那里设置cron – Rams

+0

您不需要在sql server上设置cron。您可以在代码放置的托管服务器上进行设置。 – PHPExpert