我正在嘗試將客戶遷移到新的數(shù)據(jù)庫(kù)結(jié)構(gòu)。我編寫了一個(gè) PHP 腳本,它遍歷每條記錄并確定該客戶在數(shù)據(jù)庫(kù)中是否有重復(fù)項(xiàng)。如果出現(xiàn)多次,我會(huì)更新鏈接到該客戶的所有其他表,并將其鏈接的 customerID 更新為該客戶的最新版本。我面臨的問題是,通過在瀏覽器中加載 migrate.php 來運(yùn)行此腳本需要很長(zhǎng)時(shí)間,以至于在運(yùn)行它時(shí)會(huì)出現(xiàn)超時(shí) 504,即使我運(yùn)行以“A”開頭的客戶名稱的查詢。然后更改為“B”并運(yùn)行腳本,然后更改為“C”并運(yùn)行腳本等...(無論如何都需要永遠(yuǎn)完成)。所以我的問題是:如何在 migrate.php 頁(yè)面的 PHP 循環(huán)中運(yùn)行大約 120,000 個(gè) UPDATE 查詢并避免 504 超時(shí)(當(dāng)前設(shè)置為 5 分鐘的限制),或者通過打印查詢并通過 PHPMyAdmin 運(yùn)行它們?我已經(jīng)打印出來(片段):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;但這仍然會(huì)殺死 PHPMyAdmin 并返回錯(cuò)誤??梢栽?PHPMyAdmin 中使用這個(gè)大的更新列表來運(yùn)行腳本,也許是分批?
如何在引發(fā)超時(shí) 504 的 php 循環(huán)中更新多行
慕的地6264312
2022-07-22 09:39:04