将大型数据库表合并到另一个的最有效方法?

时间:2014-07-13 01:26:41

标签: php mysql sql laravel

我有一个进程,它接受一个大文本文件(大约150 MB)块,处理每个块,并将所有内容格式化为临时数据库(没有主键)。整个过程大约需要3分钟。

我这样做的原因是因为我整个处理文件的时间超过了5分钟,这在服务器上崩溃了。

无论如何,我现在已经完成了这件事。最后一步是采取该表,我们将调用 temp ,并将其合并到实时,继续实时表上的自动增量ID(原因)我把它从 temp 中删除了?我可能错了。)所有列完全相同,在 live 表中添加了主键。

我需要做的是select * from temp group by col_a,插入直播。

我尝试过mysql进程,exec()命令,yadda yadda。

问题是这个命令继续在已花费3分钟的脚本中运行。

那么,尽可能快地将1M行从临时表移动到实时表的最有效方法是什么?所有在等待命令完成时返回bool值或其他东西。

如果重要,应用程序将在Laravel 4.2中构建。

感谢任何帮助。

非常感谢

0 个答案:

没有答案