Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php脚本将数百万mysql数据迁移到不同结构的数据库_Php_Mysql_Multiprocess - Fatal编程技术网

用php脚本将数百万mysql数据迁移到不同结构的数据库

用php脚本将数百万mysql数据迁移到不同结构的数据库,php,mysql,multiprocess,Php,Mysql,Multiprocess,我有400万的数据,我需要将这些数据迁移到一个新的MySQL数据库中。 我需要一个PHP脚本,我可以运行没有任何内存故障和任何数据 我发现使用多批处理会更好。有谁能建议什么是更好的选择以及如何在PHP和linux中实现这一点吗?如果这两个数据库位于同一台服务器上,那么您可以使用SELECT INTO获得良好的性能,甚至跨数据库。否则,您可以导出数据,并使用load data将其导入到新结构中 如果您真的决定使用php,那么我建议在队列中使用后台工作人员——这样每个工作人员都可以处理少量记录(可能

我有400万的数据,我需要将这些数据迁移到一个新的MySQL数据库中。 我需要一个PHP脚本,我可以运行没有任何内存故障和任何数据


我发现使用多批处理会更好。有谁能建议什么是更好的选择以及如何在PHP和linux中实现这一点吗?

如果这两个数据库位于同一台服务器上,那么您可以使用SELECT INTO获得良好的性能,甚至跨数据库。否则,您可以导出数据,并使用load data将其导入到新结构中


如果您真的决定使用php,那么我建议在队列中使用后台工作人员——这样每个工作人员都可以处理少量记录(可能1000条——避免内存问题)。这将需要更长的时间来运行,也需要更长的时间来安装。我们已经成功地使用了类似的东西(将数据从数据库运行到redis中)。

使用mysql本身。进出口。如果结构不同,那么你必须根据自己的情况自己编写,没有模板可以为你定制Hanks@Peter,谢谢你的建议。我将努力实施。是否有任何方法可以使用exec()设置同一页的偏移量和限制,这样,页面将创建一个新批处理,旧批处理完成后将关闭task@sanjeev-您可以让页面处理批处理,然后重定向到自身,传递限制和偏移量-但是您仍然可能存在相同的内存/超时问题(drupal中有类似的问题,这可能会帮助您-)。如果我是你,我至少会创建一个在命令行上运行的脚本——避免php超时。