亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在引發超時 504 的 php 循環中更新多行

如何在引發超時 504 的 php 循環中更新多行

PHP
慕的地6264312 2022-07-22 09:39:04
我正在嘗試將客戶遷移到新的數據庫結構。我編寫了一個 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 秒內完成了......

無需插入,然后復制數據。

因此,對于遇到相同問題的任何人,請嘗試索引表中的某些列,以便您的腳本可以快速引用它們。


查看完整回答
反對 回復 2022-07-22
  • 1 回答
  • 0 關注
  • 93 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號