現在,我有這樣的事情在我的笨模型:分手大規模的MySQL更新
<?php
$array = array(...over 29k IDs...);
$update = array();
foreach ($array as $line) {
$update[] = array('id' => $line, 'spintax' => $this->SpinTax($string));
### $this->SpinTax parses the spintax from a string I have. It has to be generated for each row.
}
$this->db->update_batch('table', $update, 'id');
?>
第一個20K的記錄得到更新就好了,但我得到一個504 Gateway Time-out
完成之前。
我試圖增加nginx服務器超時到荒謬的(如10分鐘),我仍然得到錯誤。
我該怎麼做才能使此不是超時。我已閱讀了許多答案和HOW-TO來分割更新,但我仍然繼續讓服務器超時。 A PHP
或CodeIgniter解決方案將非常出色,我需要將此代碼部署到可能不使用nginx
(在Apache中出現類似錯誤)的多個服務器。
在此先感謝。
你有多少分段? – wesside
我對每千個值使用'array_chunk',並且沒有更改'foreach'在塊上。 – David
想你需要在不同的部分運行它們,而不是頁面加載。將它們分塊並在同一頁面上一個接一個地運行它們可能會以相同的結果結束。 – wesside