如何在抛出超时的php循环中更新多行504
我正在尝试将客户迁移到新的数据库结构 我编写了一个PHP脚本,它循环遍历每个记录,并确定该客户在数据库中是否有重复项。如果出现多次,我将更新链接到该客户的所有其他表,并将其链接的customerID更新为该客户的最新版本 我所面临的问题是,通过在浏览器中加载migrate.php来运行该脚本需要很长时间,因此即使我运行以“a”开头的客户名称查询,运行该脚本时也会超时504。然后更改为“B”并运行脚本,然后更改为“C”并运行脚本等。。。(不管怎样,这都要花很长时间) 所以我的问题是:我如何在migrate.PHP页面的PHP循环中运行大约120000个更新查询并避免504超时(当前设置为5min),或者通过打印查询并通过PHPMyAdmin运行它们 我已打印出(片段): 但这仍然会杀死PHPMyAdmin并返回一个错误如何在抛出超时的php循环中更新多行504,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,我正在尝试将客户迁移到新的数据库结构 我编写了一个PHP脚本,它循环遍历每个记录,并确定该客户在数据库中是否有重复项。如果出现多次,我将更新链接到该客户的所有其他表,并将其链接的customerID更新为该客户的最新版本 我所面临的问题是,通过在浏览器中加载migrate.php来运行该脚本需要很长时间,因此即使我运行以“a”开头的客户名称查询,运行该脚本时也会超时504。然后更改为“B”并运行脚本,然后更改为“C”并运行脚本等。。。(不管怎样,这都要花很长时间) 所以我的问题是:我如何在mig
在PHPMyAdmin中是否可以使用这个大的更新列表来运行脚本(可能是成批运行)?UPDATE 嗯 最后,我对引用它的每个表中的customerID进行了索引,我用更新查询运行了我的原始脚本,它在大约5秒钟内完成了这项工作 无需插入,然后复制数据
因此,对于存在相同问题的任何人,请尝试为表中的某些列编制索引,以便脚本可以快速引用这些列。也许可以添加一列
IsMigrated TINYINT(1)DEFAULT 0
,然后在提交后将该列更新为1。重复此操作,直到所有记录都迁移了column=1
BEGIN;
UPDATE renewal_reminder SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_note SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_request SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_timeline SET renewalid='49884' WHERE renewalid='43239';
COMMIT;