我正在尝试将客户迁移到新的数据库结构。我编写了一个 PHP 脚本,它遍历每条记录并确定该客户在数据库中是否有重复项。如果出现多次,我会更新链接到该客户的所有其他表,并将其链接的 customerID 更新为该客户的最新版本。我面临的问题是,通过在浏览器中加载 migrate.php 来运行此脚本需要很长时间,以至于在运行它时会出现超时 504,即使我运行以“A”开头的客户名称的查询。然后更改为“B”并运行脚本,然后更改为“C”并运行脚本等...(无论如何都需要永远完成)。所以我的问题是:如何在 migrate.php 页面的 PHP 循环中运行大约 120,000 个 UPDATE 查询并避免 504 超时(当前设置为 5 分钟的限制),或者通过打印查询并通过 PHPMyAdmin 运行它们?我已经打印出来(片段):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;但这仍然会杀死 PHPMyAdmin 并返回错误。可以在 PHPMyAdmin 中使用这个大的更新列表来运行脚本,也许是分批?
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
更新
出色地...
我最终在引用它的每个表中为 customerID 建立了索引,并使用 UPDATE 查询运行了我的原始脚本,它在大约 5 秒内完成了......
无需插入,然后复制数据。
因此,对于遇到相同问题的任何人,请尝试索引表中的某些列,以便您的脚本可以快速引用它们。
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消