如果我有這樣的腳本:更新多行或記錄在數據庫
$sql = "SELECT * FROM table WHERE Status='0'";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query))
$id = $row['ID'];
//.........
if($process->send()) { //after sent
mysql_query("UPDATE table
SET Status ='1'
WHERE ID = '$id'");
}
}
所以當過程done.But如果我有一萬多條記錄與Status='0'
將更新的每一行,更新將變得緩慢。
那麼有沒有更好的方法來更新記錄?由於我需要知道每個進程是否完成,因此我無法使用單個查詢進行全部更新。
謝謝。
更新一個體面索引的萬行表上的一行應該是即時的。每秒發送多少次更新到服務器? – 2011-12-24 13:14:54
@Lieven它不是瞬間的,它總是需要幾毫秒。如果您嘗試每秒鐘執行1000次,那麼**會變慢,尤其是在使用大量索引時**,因爲它們必須在每次更新時重新計算。 – 2011-12-24 13:16:01
將整個任務推到另一個線程中。對其進行簡化。將它切換到另一個線程,但只需執行狀態爲0的下一個線程,並將您的表用作隊列。 – 2011-12-24 13:17:38